diff --git a/examples/2.4.x/client-android/java/oauth2/authorize-post.md b/examples/2.4.x/client-android/java/oauth2/authorize-post.md index 99ed6b8e6..077546fd1 100644 --- a/examples/2.4.x/client-android/java/oauth2/authorize-post.md +++ b/examples/2.4.x/client-android/java/oauth2/authorize-post.md @@ -23,7 +23,7 @@ oauth2.authorizePost( "", // prompt (optional) 0L, // max_age (optional) "", // authorization_details (optional) - "", // resource (optional) + List.of(), // resource (optional) "", // audience (optional) "", // request_uri (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.4.x/client-android/java/oauth2/authorize.md b/examples/2.4.x/client-android/java/oauth2/authorize.md index 62a452c88..d5b72cf12 100644 --- a/examples/2.4.x/client-android/java/oauth2/authorize.md +++ b/examples/2.4.x/client-android/java/oauth2/authorize.md @@ -23,7 +23,7 @@ oauth2.authorize( "", // prompt (optional) 0L, // max_age (optional) "", // authorization_details (optional) - "", // resource (optional) + List.of(), // resource (optional) "", // audience (optional) "", // request_uri (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.4.x/client-android/java/oauth2/create-device-authorization.md b/examples/2.4.x/client-android/java/oauth2/create-device-authorization.md index 0b65a1abf..c2fc4adb8 100644 --- a/examples/2.4.x/client-android/java/oauth2/create-device-authorization.md +++ b/examples/2.4.x/client-android/java/oauth2/create-device-authorization.md @@ -15,7 +15,7 @@ oauth2.createDeviceAuthorization( "", // client_id (optional) "", // scope (optional) "", // authorization_details (optional) - "", // resource (optional) + List.of(), // resource (optional) "", // audience (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.4.x/client-android/java/oauth2/create-par.md b/examples/2.4.x/client-android/java/oauth2/create-par.md index e65bdb54c..e1f14de95 100644 --- a/examples/2.4.x/client-android/java/oauth2/create-par.md +++ b/examples/2.4.x/client-android/java/oauth2/create-par.md @@ -23,7 +23,7 @@ oauth2.createPAR( "", // prompt (optional) 0L, // max_age (optional) "", // authorization_details (optional) - "", // resource (optional) + List.of(), // resource (optional) "", // audience (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.4.x/client-android/java/oauth2/create-token.md b/examples/2.4.x/client-android/java/oauth2/create-token.md index 39b6fa256..5c808df38 100644 --- a/examples/2.4.x/client-android/java/oauth2/create-token.md +++ b/examples/2.4.x/client-android/java/oauth2/create-token.md @@ -20,7 +20,7 @@ oauth2.createToken( "", // client_secret (optional) "", // code_verifier (optional) "https://example.com", // redirect_uri (optional) - "", // resource (optional) + List.of(), // resource (optional) "", // audience (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.4.x/client-android/kotlin/oauth2/authorize-post.md b/examples/2.4.x/client-android/kotlin/oauth2/authorize-post.md index 88bc4ee00..ea490994b 100644 --- a/examples/2.4.x/client-android/kotlin/oauth2/authorize-post.md +++ b/examples/2.4.x/client-android/kotlin/oauth2/authorize-post.md @@ -21,7 +21,7 @@ val result = oauth2.authorizePost( prompt = "", // (optional) maxAge = 0, // (optional) authorizationDetails = "", // (optional) - resource = "", // (optional) + resource = listOf(), // (optional) audience = "", // (optional) requestUri = "", // (optional) ) diff --git a/examples/2.4.x/client-android/kotlin/oauth2/authorize.md b/examples/2.4.x/client-android/kotlin/oauth2/authorize.md index 4d307e8d8..6c598343a 100644 --- a/examples/2.4.x/client-android/kotlin/oauth2/authorize.md +++ b/examples/2.4.x/client-android/kotlin/oauth2/authorize.md @@ -21,7 +21,7 @@ val result = oauth2.authorize( prompt = "", // (optional) maxAge = 0, // (optional) authorizationDetails = "", // (optional) - resource = "", // (optional) + resource = listOf(), // (optional) audience = "", // (optional) requestUri = "", // (optional) ) diff --git a/examples/2.4.x/client-android/kotlin/oauth2/create-device-authorization.md b/examples/2.4.x/client-android/kotlin/oauth2/create-device-authorization.md index ab307c37a..d4fb9b02c 100644 --- a/examples/2.4.x/client-android/kotlin/oauth2/create-device-authorization.md +++ b/examples/2.4.x/client-android/kotlin/oauth2/create-device-authorization.md @@ -13,7 +13,7 @@ val result = oauth2.createDeviceAuthorization( clientId = "", // (optional) scope = "", // (optional) authorizationDetails = "", // (optional) - resource = "", // (optional) + resource = listOf(), // (optional) audience = "", // (optional) ) ``` diff --git a/examples/2.4.x/client-android/kotlin/oauth2/create-par.md b/examples/2.4.x/client-android/kotlin/oauth2/create-par.md index 752c64eb8..213096c12 100644 --- a/examples/2.4.x/client-android/kotlin/oauth2/create-par.md +++ b/examples/2.4.x/client-android/kotlin/oauth2/create-par.md @@ -21,7 +21,7 @@ val result = oauth2.createPAR( prompt = "", // (optional) maxAge = 0, // (optional) authorizationDetails = "", // (optional) - resource = "", // (optional) + resource = listOf(), // (optional) audience = "", // (optional) ) ``` diff --git a/examples/2.4.x/client-android/kotlin/oauth2/create-token.md b/examples/2.4.x/client-android/kotlin/oauth2/create-token.md index 5e23344f9..a0e4f20e7 100644 --- a/examples/2.4.x/client-android/kotlin/oauth2/create-token.md +++ b/examples/2.4.x/client-android/kotlin/oauth2/create-token.md @@ -18,7 +18,7 @@ val result = oauth2.createToken( clientSecret = "", // (optional) codeVerifier = "", // (optional) redirectUri = "https://example.com", // (optional) - resource = "", // (optional) + resource = listOf(), // (optional) audience = "", // (optional) ) ``` diff --git a/examples/2.4.x/client-apple/examples/oauth2/authorize-post.md b/examples/2.4.x/client-apple/examples/oauth2/authorize-post.md index f3eee38a4..070e4dbc9 100644 --- a/examples/2.4.x/client-apple/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/client-apple/examples/oauth2/authorize-post.md @@ -19,7 +19,7 @@ let oauth2Authorize = try await oauth2.authorizePost( prompt: "", // optional max_age: 0, // optional authorization_details: "", // optional - resource: "", // optional + resource: [], // optional audience: "", // optional request_uri: "" // optional ) diff --git a/examples/2.4.x/client-apple/examples/oauth2/authorize.md b/examples/2.4.x/client-apple/examples/oauth2/authorize.md index fb751a9f5..c97faf02c 100644 --- a/examples/2.4.x/client-apple/examples/oauth2/authorize.md +++ b/examples/2.4.x/client-apple/examples/oauth2/authorize.md @@ -19,7 +19,7 @@ let oauth2Authorize = try await oauth2.authorize( prompt: "", // optional max_age: 0, // optional authorization_details: "", // optional - resource: "", // optional + resource: [], // optional audience: "", // optional request_uri: "" // optional ) diff --git a/examples/2.4.x/client-apple/examples/oauth2/create-device-authorization.md b/examples/2.4.x/client-apple/examples/oauth2/create-device-authorization.md index d7beeb5f0..6105867ab 100644 --- a/examples/2.4.x/client-apple/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/client-apple/examples/oauth2/create-device-authorization.md @@ -11,7 +11,7 @@ let oauth2DeviceAuthorization = try await oauth2.createDeviceAuthorization( client_id: "", // optional scope: "", // optional authorization_details: "", // optional - resource: "", // optional + resource: [], // optional audience: "" // optional ) diff --git a/examples/2.4.x/client-apple/examples/oauth2/create-par.md b/examples/2.4.x/client-apple/examples/oauth2/create-par.md index 2aa8e304e..aedcdf9e6 100644 --- a/examples/2.4.x/client-apple/examples/oauth2/create-par.md +++ b/examples/2.4.x/client-apple/examples/oauth2/create-par.md @@ -19,7 +19,7 @@ let oauth2PAR = try await oauth2.createPAR( prompt: "", // optional max_age: 0, // optional authorization_details: "", // optional - resource: "", // optional + resource: [], // optional audience: "" // optional ) diff --git a/examples/2.4.x/client-apple/examples/oauth2/create-token.md b/examples/2.4.x/client-apple/examples/oauth2/create-token.md index d604aef76..3436f7ace 100644 --- a/examples/2.4.x/client-apple/examples/oauth2/create-token.md +++ b/examples/2.4.x/client-apple/examples/oauth2/create-token.md @@ -16,7 +16,7 @@ let oauth2Token = try await oauth2.createToken( client_secret: "", // optional code_verifier: "", // optional redirect_uri: "https://example.com", // optional - resource: "", // optional + resource: [], // optional audience: "" // optional ) diff --git a/examples/2.4.x/client-flutter/examples/account/create-anonymous-session.md b/examples/2.4.x/client-flutter/examples/account/create-anonymous-session.md index 0cdedf8f2..5fa3803bf 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-anonymous-session.md +++ b/examples/2.4.x/client-flutter/examples/account/create-anonymous-session.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -Session result = await account.createAnonymousSession(); +models.Session result = await account.createAnonymousSession(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-email-password-session.md b/examples/2.4.x/client-flutter/examples/account/create-email-password-session.md index c27fb3281..e40921bd7 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-email-password-session.md +++ b/examples/2.4.x/client-flutter/examples/account/create-email-password-session.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.createEmailPasswordSession( +models.Session result = await account.createEmailPasswordSession( email: 'email@example.com', password: 'password', duration: 60, // optional diff --git a/examples/2.4.x/client-flutter/examples/account/create-email-token.md b/examples/2.4.x/client-flutter/examples/account/create-email-token.md index 738905812..a2b3d4cc5 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-email-token.md +++ b/examples/2.4.x/client-flutter/examples/account/create-email-token.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createEmailToken( +models.Token result = await account.createEmailToken( userId: '', email: 'email@example.com', phrase: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/account/create-email-verification-otp.md b/examples/2.4.x/client-flutter/examples/account/create-email-verification-otp.md index 941db9659..0e7cc23c5 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-email-verification-otp.md +++ b/examples/2.4.x/client-flutter/examples/account/create-email-verification-otp.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createEmailVerificationOTP( +models.Token result = await account.createEmailVerificationOTP( phrase: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-email-verification.md b/examples/2.4.x/client-flutter/examples/account/create-email-verification.md index d88979c88..48011dba1 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-email-verification.md +++ b/examples/2.4.x/client-flutter/examples/account/create-email-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createEmailVerification( +models.Token result = await account.createEmailVerification( url: 'https://example.com', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-id-token-session.md b/examples/2.4.x/client-flutter/examples/account/create-id-token-session.md index 61f840659..f667ea96f 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-id-token-session.md +++ b/examples/2.4.x/client-flutter/examples/account/create-id-token-session.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/enums.dart' as enums; Client client = Client() @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.createIdTokenSession( +models.Session result = await account.createIdTokenSession( provider: enums.IdTokenProvider.apple, idToken: '', nonce: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/account/create-jwt.md b/examples/2.4.x/client-flutter/examples/account/create-jwt.md index 72ff1180e..dee4f4d92 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-jwt.md +++ b/examples/2.4.x/client-flutter/examples/account/create-jwt.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Jwt result = await account.createJWT( +models.Jwt result = await account.createJWT( duration: 0, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-magic-url-token.md b/examples/2.4.x/client-flutter/examples/account/create-magic-url-token.md index 59d1cc243..fc04f5083 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-magic-url-token.md +++ b/examples/2.4.x/client-flutter/examples/account/create-magic-url-token.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createMagicURLToken( +models.Token result = await account.createMagicURLToken( userId: '', email: 'email@example.com', url: 'https://example.com', // optional diff --git a/examples/2.4.x/client-flutter/examples/account/create-mfa-authenticator.md b/examples/2.4.x/client-flutter/examples/account/create-mfa-authenticator.md index c86de3ba7..7dc8321c6 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-mfa-authenticator.md +++ b/examples/2.4.x/client-flutter/examples/account/create-mfa-authenticator.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/enums.dart' as enums; Client client = Client() @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -MfaType result = await account.createMFAAuthenticator( +models.MfaType result = await account.createMFAAuthenticator( type: enums.AuthenticatorType.totp, ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-mfa-challenge.md b/examples/2.4.x/client-flutter/examples/account/create-mfa-challenge.md index c7007d328..f5f716189 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-mfa-challenge.md +++ b/examples/2.4.x/client-flutter/examples/account/create-mfa-challenge.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/enums.dart' as enums; Client client = Client() @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -MfaChallenge result = await account.createMFAChallenge( +models.MfaChallenge result = await account.createMFAChallenge( factor: enums.AuthenticationFactor.email, ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-mfa-recovery-codes.md b/examples/2.4.x/client-flutter/examples/account/create-mfa-recovery-codes.md index 252dec7a7..d39925f40 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-mfa-recovery-codes.md +++ b/examples/2.4.x/client-flutter/examples/account/create-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -MfaRecoveryCodes result = await account.createMFARecoveryCodes(); +models.MfaRecoveryCodes result = await account.createMFARecoveryCodes(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-passkey-token.md b/examples/2.4.x/client-flutter/examples/account/create-passkey-token.md index 22cca9621..d50d57481 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-passkey-token.md +++ b/examples/2.4.x/client-flutter/examples/account/create-passkey-token.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -PasskeyChallenge result = await account.createPasskeyToken(); +models.PasskeyChallenge result = await account.createPasskeyToken(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-passkey.md b/examples/2.4.x/client-flutter/examples/account/create-passkey.md index 5c5b63753..945c8a5b0 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-passkey.md +++ b/examples/2.4.x/client-flutter/examples/account/create-passkey.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -PasskeyChallenge result = await account.createPasskey( +models.PasskeyChallenge result = await account.createPasskey( passkeyId: '', // optional name: '', // optional ); diff --git a/examples/2.4.x/client-flutter/examples/account/create-phone-token.md b/examples/2.4.x/client-flutter/examples/account/create-phone-token.md index 95799d62a..907f85bdc 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-phone-token.md +++ b/examples/2.4.x/client-flutter/examples/account/create-phone-token.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createPhoneToken( +models.Token result = await account.createPhoneToken( userId: '', phone: '+12065550100', ); diff --git a/examples/2.4.x/client-flutter/examples/account/create-phone-verification.md b/examples/2.4.x/client-flutter/examples/account/create-phone-verification.md index 9fc84dfc7..0fd3951a1 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-phone-verification.md +++ b/examples/2.4.x/client-flutter/examples/account/create-phone-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -Token result = await account.createPhoneVerification(); +models.Token result = await account.createPhoneVerification(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create-push-target.md b/examples/2.4.x/client-flutter/examples/account/create-push-target.md index d493b2a00..250cd4dbe 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-push-target.md +++ b/examples/2.4.x/client-flutter/examples/account/create-push-target.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Target result = await account.createPushTarget( +models.Target result = await account.createPushTarget( targetId: '', identifier: '', providerId: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/account/create-recovery-otp.md b/examples/2.4.x/client-flutter/examples/account/create-recovery-otp.md index 366469f35..a081194ee 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-recovery-otp.md +++ b/examples/2.4.x/client-flutter/examples/account/create-recovery-otp.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createRecoveryOTP( +models.Token result = await account.createRecoveryOTP( email: 'email@example.com', phrase: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/account/create-recovery.md b/examples/2.4.x/client-flutter/examples/account/create-recovery.md index fe5ecfa05..d59589fea 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-recovery.md +++ b/examples/2.4.x/client-flutter/examples/account/create-recovery.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createRecovery( +models.Token result = await account.createRecovery( email: 'email@example.com', url: 'https://example.com', ); diff --git a/examples/2.4.x/client-flutter/examples/account/create-session.md b/examples/2.4.x/client-flutter/examples/account/create-session.md index ebac1f930..3cf9382f0 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-session.md +++ b/examples/2.4.x/client-flutter/examples/account/create-session.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.createSession( +models.Session result = await account.createSession( userId: '', secret: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/create-verification.md b/examples/2.4.x/client-flutter/examples/account/create-verification.md index c36cb8f34..08896cbc4 100644 --- a/examples/2.4.x/client-flutter/examples/account/create-verification.md +++ b/examples/2.4.x/client-flutter/examples/account/create-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createVerification( +models.Token result = await account.createVerification( url: 'https://example.com', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/create.md b/examples/2.4.x/client-flutter/examples/account/create.md index 8343f6284..6f1350aa9 100644 --- a/examples/2.4.x/client-flutter/examples/account/create.md +++ b/examples/2.4.x/client-flutter/examples/account/create.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -User result = await account.create( +models.User result = await account.create( userId: '', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/client-flutter/examples/account/get-consent-token.md b/examples/2.4.x/client-flutter/examples/account/get-consent-token.md index 67a0d842d..4454000a8 100644 --- a/examples/2.4.x/client-flutter/examples/account/get-consent-token.md +++ b/examples/2.4.x/client-flutter/examples/account/get-consent-token.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Oauth2ConsentToken result = await account.getConsentToken( +models.Oauth2ConsentToken result = await account.getConsentToken( consentId: '', tokenId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/get-consent.md b/examples/2.4.x/client-flutter/examples/account/get-consent.md index aff627251..5fcf846ee 100644 --- a/examples/2.4.x/client-flutter/examples/account/get-consent.md +++ b/examples/2.4.x/client-flutter/examples/account/get-consent.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Oauth2Consent result = await account.getConsent( +models.Oauth2Consent result = await account.getConsent( consentId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/get-mfa-recovery-codes.md b/examples/2.4.x/client-flutter/examples/account/get-mfa-recovery-codes.md index ed5531a32..889252fda 100644 --- a/examples/2.4.x/client-flutter/examples/account/get-mfa-recovery-codes.md +++ b/examples/2.4.x/client-flutter/examples/account/get-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -MfaRecoveryCodes result = await account.getMFARecoveryCodes(); +models.MfaRecoveryCodes result = await account.getMFARecoveryCodes(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/get-passkey.md b/examples/2.4.x/client-flutter/examples/account/get-passkey.md index bc502c020..ab38a03f2 100644 --- a/examples/2.4.x/client-flutter/examples/account/get-passkey.md +++ b/examples/2.4.x/client-flutter/examples/account/get-passkey.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Passkey result = await account.getPasskey( +models.Passkey result = await account.getPasskey( passkeyId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/get-prefs.md b/examples/2.4.x/client-flutter/examples/account/get-prefs.md index dc359f9c1..a2407a587 100644 --- a/examples/2.4.x/client-flutter/examples/account/get-prefs.md +++ b/examples/2.4.x/client-flutter/examples/account/get-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -Preferences result = await account.getPrefs(); +models.Preferences result = await account.getPrefs(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/get-session.md b/examples/2.4.x/client-flutter/examples/account/get-session.md index c27058a8e..10ca295e5 100644 --- a/examples/2.4.x/client-flutter/examples/account/get-session.md +++ b/examples/2.4.x/client-flutter/examples/account/get-session.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.getSession( +models.Session result = await account.getSession( sessionId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/get.md b/examples/2.4.x/client-flutter/examples/account/get.md index 1bd67c6a1..52c6dbb6c 100644 --- a/examples/2.4.x/client-flutter/examples/account/get.md +++ b/examples/2.4.x/client-flutter/examples/account/get.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -User result = await account.get(); +models.User result = await account.get(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/list-consent-tokens.md b/examples/2.4.x/client-flutter/examples/account/list-consent-tokens.md index 835c7775a..58f12a419 100644 --- a/examples/2.4.x/client-flutter/examples/account/list-consent-tokens.md +++ b/examples/2.4.x/client-flutter/examples/account/list-consent-tokens.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Oauth2ConsentTokenList result = await account.listConsentTokens( +models.Oauth2ConsentTokenList result = await account.listConsentTokens( consentId: '', queries: [], // optional total: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/account/list-consents.md b/examples/2.4.x/client-flutter/examples/account/list-consents.md index d39f05479..cae45ca39 100644 --- a/examples/2.4.x/client-flutter/examples/account/list-consents.md +++ b/examples/2.4.x/client-flutter/examples/account/list-consents.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Oauth2ConsentList result = await account.listConsents( +models.Oauth2ConsentList result = await account.listConsents( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/account/list-identities.md b/examples/2.4.x/client-flutter/examples/account/list-identities.md index d0c0e5b60..73c900ecc 100644 --- a/examples/2.4.x/client-flutter/examples/account/list-identities.md +++ b/examples/2.4.x/client-flutter/examples/account/list-identities.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -IdentityList result = await account.listIdentities( +models.IdentityList result = await account.listIdentities( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/account/list-mfa-factors.md b/examples/2.4.x/client-flutter/examples/account/list-mfa-factors.md index 4cfcf88b3..98e1815e2 100644 --- a/examples/2.4.x/client-flutter/examples/account/list-mfa-factors.md +++ b/examples/2.4.x/client-flutter/examples/account/list-mfa-factors.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -MfaFactors result = await account.listMFAFactors(); +models.MfaFactors result = await account.listMFAFactors(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/list-passkeys.md b/examples/2.4.x/client-flutter/examples/account/list-passkeys.md index 6d61d3887..7c77733db 100644 --- a/examples/2.4.x/client-flutter/examples/account/list-passkeys.md +++ b/examples/2.4.x/client-flutter/examples/account/list-passkeys.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -PasskeyList result = await account.listPasskeys( +models.PasskeyList result = await account.listPasskeys( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/account/list-sessions.md b/examples/2.4.x/client-flutter/examples/account/list-sessions.md index 3b148a7b2..21bdd8988 100644 --- a/examples/2.4.x/client-flutter/examples/account/list-sessions.md +++ b/examples/2.4.x/client-flutter/examples/account/list-sessions.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -SessionList result = await account.listSessions( +models.SessionList result = await account.listSessions( total: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/update-email-verification-otp.md b/examples/2.4.x/client-flutter/examples/account/update-email-verification-otp.md index 52ff4c119..f4572d832 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-email-verification-otp.md +++ b/examples/2.4.x/client-flutter/examples/account/update-email-verification-otp.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateEmailVerificationOTP( +models.Token result = await account.updateEmailVerificationOTP( userId: '', secret: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-email-verification.md b/examples/2.4.x/client-flutter/examples/account/update-email-verification.md index 7e3975e96..828013f1d 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-email-verification.md +++ b/examples/2.4.x/client-flutter/examples/account/update-email-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateEmailVerification( +models.Token result = await account.updateEmailVerification( userId: '', secret: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-email.md b/examples/2.4.x/client-flutter/examples/account/update-email.md index e5e1a169a..13cc2d7c3 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-email.md +++ b/examples/2.4.x/client-flutter/examples/account/update-email.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updateEmail( +models.User result = await account.updateEmail( email: 'email@example.com', password: 'password', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-magic-url-session.md b/examples/2.4.x/client-flutter/examples/account/update-magic-url-session.md index c45dcf1eb..590d6f9e1 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-magic-url-session.md +++ b/examples/2.4.x/client-flutter/examples/account/update-magic-url-session.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.updateMagicURLSession( +models.Session result = await account.updateMagicURLSession( userId: '', secret: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-mfa-authenticator.md b/examples/2.4.x/client-flutter/examples/account/update-mfa-authenticator.md index 539c5e280..bb9469518 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-mfa-authenticator.md +++ b/examples/2.4.x/client-flutter/examples/account/update-mfa-authenticator.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/enums.dart' as enums; Client client = Client() @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updateMFAAuthenticator( +models.User result = await account.updateMFAAuthenticator( type: enums.AuthenticatorType.totp, otp: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-mfa-challenge.md b/examples/2.4.x/client-flutter/examples/account/update-mfa-challenge.md index 55f4ebee4..8e1ee6621 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-mfa-challenge.md +++ b/examples/2.4.x/client-flutter/examples/account/update-mfa-challenge.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.updateMFAChallenge( +models.Session result = await account.updateMFAChallenge( challengeId: '', otp: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-mfa-recovery-codes.md b/examples/2.4.x/client-flutter/examples/account/update-mfa-recovery-codes.md index 7a188d40f..88e5284e4 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-mfa-recovery-codes.md +++ b/examples/2.4.x/client-flutter/examples/account/update-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -MfaRecoveryCodes result = await account.updateMFARecoveryCodes(); +models.MfaRecoveryCodes result = await account.updateMFARecoveryCodes(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/update-mfa.md b/examples/2.4.x/client-flutter/examples/account/update-mfa.md index db9addd61..fd5826bc4 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-mfa.md +++ b/examples/2.4.x/client-flutter/examples/account/update-mfa.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updateMFA( +models.User result = await account.updateMFA( mfa: false, ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/update-name.md b/examples/2.4.x/client-flutter/examples/account/update-name.md index 8ab712232..cf9064db0 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-name.md +++ b/examples/2.4.x/client-flutter/examples/account/update-name.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updateName( +models.User result = await account.updateName( name: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/update-passkey-token.md b/examples/2.4.x/client-flutter/examples/account/update-passkey-token.md index 8301bd3b7..087030082 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-passkey-token.md +++ b/examples/2.4.x/client-flutter/examples/account/update-passkey-token.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -TokenSecret result = await account.updatePasskeyToken( +models.TokenSecret result = await account.updatePasskeyToken( challengeId: '', credential: {}, ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-passkey-verification.md b/examples/2.4.x/client-flutter/examples/account/update-passkey-verification.md index 89b2f01ce..1f055fb6c 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-passkey-verification.md +++ b/examples/2.4.x/client-flutter/examples/account/update-passkey-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Passkey result = await account.updatePasskeyVerification( +models.Passkey result = await account.updatePasskeyVerification( passkeyId: '', credential: {}, ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-passkey.md b/examples/2.4.x/client-flutter/examples/account/update-passkey.md index 82a228fea..7d5e5c8b6 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-passkey.md +++ b/examples/2.4.x/client-flutter/examples/account/update-passkey.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Passkey result = await account.updatePasskey( +models.Passkey result = await account.updatePasskey( passkeyId: '', name: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-password.md b/examples/2.4.x/client-flutter/examples/account/update-password.md index c2604a9c2..e5e5495fc 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-password.md +++ b/examples/2.4.x/client-flutter/examples/account/update-password.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updatePassword( +models.User result = await account.updatePassword( password: 'password', oldPassword: 'password', // optional ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-phone-session.md b/examples/2.4.x/client-flutter/examples/account/update-phone-session.md index f538680a5..4137cece6 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-phone-session.md +++ b/examples/2.4.x/client-flutter/examples/account/update-phone-session.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.updatePhoneSession( +models.Session result = await account.updatePhoneSession( userId: '', secret: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-phone-verification.md b/examples/2.4.x/client-flutter/examples/account/update-phone-verification.md index de226a7c7..dc2afd5cb 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-phone-verification.md +++ b/examples/2.4.x/client-flutter/examples/account/update-phone-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updatePhoneVerification( +models.Token result = await account.updatePhoneVerification( userId: '', secret: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-phone.md b/examples/2.4.x/client-flutter/examples/account/update-phone.md index f631c5dfc..914b64d20 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-phone.md +++ b/examples/2.4.x/client-flutter/examples/account/update-phone.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updatePhone( +models.User result = await account.updatePhone( phone: '+12065550100', password: 'password', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-prefs.md b/examples/2.4.x/client-flutter/examples/account/update-prefs.md index 6f9863d38..2ae515f62 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-prefs.md +++ b/examples/2.4.x/client-flutter/examples/account/update-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updatePrefs( +models.User result = await account.updatePrefs( prefs: { "language": "en", "timezone": "UTC", diff --git a/examples/2.4.x/client-flutter/examples/account/update-push-target.md b/examples/2.4.x/client-flutter/examples/account/update-push-target.md index 601f3aece..494299839 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-push-target.md +++ b/examples/2.4.x/client-flutter/examples/account/update-push-target.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Target result = await account.updatePushTarget( +models.Target result = await account.updatePushTarget( targetId: '', identifier: '', ); diff --git a/examples/2.4.x/client-flutter/examples/account/update-recovery-otp.md b/examples/2.4.x/client-flutter/examples/account/update-recovery-otp.md index f7b4a2efc..0103c9511 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-recovery-otp.md +++ b/examples/2.4.x/client-flutter/examples/account/update-recovery-otp.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateRecoveryOTP( +models.Token result = await account.updateRecoveryOTP( userId: '', secret: '', password: 'password', diff --git a/examples/2.4.x/client-flutter/examples/account/update-recovery.md b/examples/2.4.x/client-flutter/examples/account/update-recovery.md index 809aa0448..8d85a1fae 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-recovery.md +++ b/examples/2.4.x/client-flutter/examples/account/update-recovery.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateRecovery( +models.Token result = await account.updateRecovery( userId: '', secret: '', password: 'password', diff --git a/examples/2.4.x/client-flutter/examples/account/update-session.md b/examples/2.4.x/client-flutter/examples/account/update-session.md index 7fb334aaa..18fe1edea 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-session.md +++ b/examples/2.4.x/client-flutter/examples/account/update-session.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.updateSession( +models.Session result = await account.updateSession( sessionId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/update-status.md b/examples/2.4.x/client-flutter/examples/account/update-status.md index d7b0d0dcc..88c9ecff7 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-status.md +++ b/examples/2.4.x/client-flutter/examples/account/update-status.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Account account = Account(client); -User result = await account.updateStatus(); +models.User result = await account.updateStatus(); ``` diff --git a/examples/2.4.x/client-flutter/examples/account/update-verification.md b/examples/2.4.x/client-flutter/examples/account/update-verification.md index 339b4b91c..433677aa6 100644 --- a/examples/2.4.x/client-flutter/examples/account/update-verification.md +++ b/examples/2.4.x/client-flutter/examples/account/update-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateVerification( +models.Token result = await account.updateVerification( userId: '', secret: '', ); diff --git a/examples/2.4.x/client-flutter/examples/analytics/create-event.md b/examples/2.4.x/client-flutter/examples/analytics/create-event.md index a299877e3..d88e257b6 100644 --- a/examples/2.4.x/client-flutter/examples/analytics/create-event.md +++ b/examples/2.4.x/client-flutter/examples/analytics/create-event.md @@ -7,7 +7,7 @@ Client client = Client() Analytics analytics = Analytics(client); - result = await analytics.createEvent( +models. result = await analytics.createEvent( propertyId: '', name: '', url: 'https://example.com', diff --git a/examples/2.4.x/client-flutter/examples/apps/create-installation-token.md b/examples/2.4.x/client-flutter/examples/apps/create-installation-token.md index 868044ba6..32b738ae4 100644 --- a/examples/2.4.x/client-flutter/examples/apps/create-installation-token.md +++ b/examples/2.4.x/client-flutter/examples/apps/create-installation-token.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -Oauth2Token result = await apps.createInstallationToken( +models.Oauth2Token result = await apps.createInstallationToken( appId: '', installationId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/apps/create-key.md b/examples/2.4.x/client-flutter/examples/apps/create-key.md index b22a1bd63..6e8974b77 100644 --- a/examples/2.4.x/client-flutter/examples/apps/create-key.md +++ b/examples/2.4.x/client-flutter/examples/apps/create-key.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppKey result = await apps.createKey( +models.AppKey result = await apps.createKey( appId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/apps/create-secret.md b/examples/2.4.x/client-flutter/examples/apps/create-secret.md index 654f1eb53..c7c46ea05 100644 --- a/examples/2.4.x/client-flutter/examples/apps/create-secret.md +++ b/examples/2.4.x/client-flutter/examples/apps/create-secret.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppSecretPlaintext result = await apps.createSecret( +models.AppSecretPlaintext result = await apps.createSecret( appId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/apps/create.md b/examples/2.4.x/client-flutter/examples/apps/create.md index 77bd1430d..0613f535b 100644 --- a/examples/2.4.x/client-flutter/examples/apps/create.md +++ b/examples/2.4.x/client-flutter/examples/apps/create.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.create( +models.App result = await apps.create( appId: '', name: '', redirectUris: [], diff --git a/examples/2.4.x/client-flutter/examples/apps/get-installation.md b/examples/2.4.x/client-flutter/examples/apps/get-installation.md index e3364ae8c..0d31b69ab 100644 --- a/examples/2.4.x/client-flutter/examples/apps/get-installation.md +++ b/examples/2.4.x/client-flutter/examples/apps/get-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppInstallation result = await apps.getInstallation( +models.AppInstallation result = await apps.getInstallation( appId: '', installationId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/apps/get-key.md b/examples/2.4.x/client-flutter/examples/apps/get-key.md index 3e0a79791..29cb78f44 100644 --- a/examples/2.4.x/client-flutter/examples/apps/get-key.md +++ b/examples/2.4.x/client-flutter/examples/apps/get-key.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppKey result = await apps.getKey( +models.AppKey result = await apps.getKey( appId: '', keyId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/apps/get-secret.md b/examples/2.4.x/client-flutter/examples/apps/get-secret.md index 63d047aac..d6c39ca95 100644 --- a/examples/2.4.x/client-flutter/examples/apps/get-secret.md +++ b/examples/2.4.x/client-flutter/examples/apps/get-secret.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppSecret result = await apps.getSecret( +models.AppSecret result = await apps.getSecret( appId: '', secretId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/apps/get.md b/examples/2.4.x/client-flutter/examples/apps/get.md index be860f32d..a70e4c91a 100644 --- a/examples/2.4.x/client-flutter/examples/apps/get.md +++ b/examples/2.4.x/client-flutter/examples/apps/get.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.get( +models.App result = await apps.get( appId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/apps/list-installation-scopes.md b/examples/2.4.x/client-flutter/examples/apps/list-installation-scopes.md index de20ba960..2bd15fe21 100644 --- a/examples/2.4.x/client-flutter/examples/apps/list-installation-scopes.md +++ b/examples/2.4.x/client-flutter/examples/apps/list-installation-scopes.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Apps apps = Apps(client); -AppScopeList result = await apps.listInstallationScopes(); +models.AppScopeList result = await apps.listInstallationScopes(); ``` diff --git a/examples/2.4.x/client-flutter/examples/apps/list-installations.md b/examples/2.4.x/client-flutter/examples/apps/list-installations.md index 940de5d37..1463bc7f8 100644 --- a/examples/2.4.x/client-flutter/examples/apps/list-installations.md +++ b/examples/2.4.x/client-flutter/examples/apps/list-installations.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppInstallationList result = await apps.listInstallations( +models.AppInstallationList result = await apps.listInstallations( appId: '', queries: [], // optional total: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/apps/list-keys.md b/examples/2.4.x/client-flutter/examples/apps/list-keys.md index 237d14875..f52f2754a 100644 --- a/examples/2.4.x/client-flutter/examples/apps/list-keys.md +++ b/examples/2.4.x/client-flutter/examples/apps/list-keys.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppKeyList result = await apps.listKeys( +models.AppKeyList result = await apps.listKeys( appId: '', queries: [], // optional total: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/apps/list-o-auth-2-scopes.md b/examples/2.4.x/client-flutter/examples/apps/list-o-auth-2-scopes.md index 2ef099dff..087554492 100644 --- a/examples/2.4.x/client-flutter/examples/apps/list-o-auth-2-scopes.md +++ b/examples/2.4.x/client-flutter/examples/apps/list-o-auth-2-scopes.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Apps apps = Apps(client); -AppScopeList result = await apps.listOAuth2Scopes(); +models.AppScopeList result = await apps.listOAuth2Scopes(); ``` diff --git a/examples/2.4.x/client-flutter/examples/apps/list-secrets.md b/examples/2.4.x/client-flutter/examples/apps/list-secrets.md index 244ed4321..51998b3c1 100644 --- a/examples/2.4.x/client-flutter/examples/apps/list-secrets.md +++ b/examples/2.4.x/client-flutter/examples/apps/list-secrets.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppSecretList result = await apps.listSecrets( +models.AppSecretList result = await apps.listSecrets( appId: '', queries: [], // optional total: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/apps/list.md b/examples/2.4.x/client-flutter/examples/apps/list.md index 78f88ba1b..e78685800 100644 --- a/examples/2.4.x/client-flutter/examples/apps/list.md +++ b/examples/2.4.x/client-flutter/examples/apps/list.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -AppsList result = await apps.list( +models.AppsList result = await apps.list( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/apps/update-team.md b/examples/2.4.x/client-flutter/examples/apps/update-team.md index 6e70778c1..adcd2361f 100644 --- a/examples/2.4.x/client-flutter/examples/apps/update-team.md +++ b/examples/2.4.x/client-flutter/examples/apps/update-team.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.updateTeam( +models.App result = await apps.updateTeam( appId: '', teamId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/apps/update.md b/examples/2.4.x/client-flutter/examples/apps/update.md index 08ee2218c..38ceb19a3 100644 --- a/examples/2.4.x/client-flutter/examples/apps/update.md +++ b/examples/2.4.x/client-flutter/examples/apps/update.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.update( +models.App result = await apps.update( appId: '', name: '', description: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/avatars/update-photo.md b/examples/2.4.x/client-flutter/examples/avatars/update-photo.md index c2431d7ac..e667a94af 100644 --- a/examples/2.4.x/client-flutter/examples/avatars/update-photo.md +++ b/examples/2.4.x/client-flutter/examples/avatars/update-photo.md @@ -1,6 +1,7 @@ ```dart import 'dart:io'; import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Avatars avatars = Avatars(client); -Account result = await avatars.updatePhoto( +models.Account result = await avatars.updatePhoto( file: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), ); ``` diff --git a/examples/2.4.x/client-flutter/examples/databases/create-document.md b/examples/2.4.x/client-flutter/examples/databases/create-document.md index a4df848f0..ade4f5760 100644 --- a/examples/2.4.x/client-flutter/examples/databases/create-document.md +++ b/examples/2.4.x/client-flutter/examples/databases/create-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.createDocument( +models.Document result = await databases.createDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/databases/create-operations.md b/examples/2.4.x/client-flutter/examples/databases/create-operations.md index 0551c28bf..e3528d325 100644 --- a/examples/2.4.x/client-flutter/examples/databases/create-operations.md +++ b/examples/2.4.x/client-flutter/examples/databases/create-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -Transaction result = await databases.createOperations( +models.Transaction result = await databases.createOperations( transactionId: '', operations: [ { diff --git a/examples/2.4.x/client-flutter/examples/databases/create-transaction.md b/examples/2.4.x/client-flutter/examples/databases/create-transaction.md index 14ea55637..b7ccbf215 100644 --- a/examples/2.4.x/client-flutter/examples/databases/create-transaction.md +++ b/examples/2.4.x/client-flutter/examples/databases/create-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -Transaction result = await databases.createTransaction( +models.Transaction result = await databases.createTransaction( ttl: 60, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/databases/decrement-document-attribute.md b/examples/2.4.x/client-flutter/examples/databases/decrement-document-attribute.md index 0d178cff1..6780426cc 100644 --- a/examples/2.4.x/client-flutter/examples/databases/decrement-document-attribute.md +++ b/examples/2.4.x/client-flutter/examples/databases/decrement-document-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.decrementDocumentAttribute( +models.Document result = await databases.decrementDocumentAttribute( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/databases/get-document.md b/examples/2.4.x/client-flutter/examples/databases/get-document.md index 1f384afd1..fabd67dfd 100644 --- a/examples/2.4.x/client-flutter/examples/databases/get-document.md +++ b/examples/2.4.x/client-flutter/examples/databases/get-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.getDocument( +models.Document result = await databases.getDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/databases/get-transaction.md b/examples/2.4.x/client-flutter/examples/databases/get-transaction.md index 142b8bfa4..012e2e276 100644 --- a/examples/2.4.x/client-flutter/examples/databases/get-transaction.md +++ b/examples/2.4.x/client-flutter/examples/databases/get-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -Transaction result = await databases.getTransaction( +models.Transaction result = await databases.getTransaction( transactionId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/databases/increment-document-attribute.md b/examples/2.4.x/client-flutter/examples/databases/increment-document-attribute.md index 05b3690ef..dce65a732 100644 --- a/examples/2.4.x/client-flutter/examples/databases/increment-document-attribute.md +++ b/examples/2.4.x/client-flutter/examples/databases/increment-document-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.incrementDocumentAttribute( +models.Document result = await databases.incrementDocumentAttribute( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/databases/list-documents.md b/examples/2.4.x/client-flutter/examples/databases/list-documents.md index 531be6ade..090e731a8 100644 --- a/examples/2.4.x/client-flutter/examples/databases/list-documents.md +++ b/examples/2.4.x/client-flutter/examples/databases/list-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -DocumentList result = await databases.listDocuments( +models.DocumentList result = await databases.listDocuments( databaseId: '', collectionId: '', queries: [], // optional diff --git a/examples/2.4.x/client-flutter/examples/databases/list-transactions.md b/examples/2.4.x/client-flutter/examples/databases/list-transactions.md index 9ab664217..d090af1eb 100644 --- a/examples/2.4.x/client-flutter/examples/databases/list-transactions.md +++ b/examples/2.4.x/client-flutter/examples/databases/list-transactions.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -TransactionList result = await databases.listTransactions( +models.TransactionList result = await databases.listTransactions( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/databases/update-document.md b/examples/2.4.x/client-flutter/examples/databases/update-document.md index 52557334c..cf6d599c1 100644 --- a/examples/2.4.x/client-flutter/examples/databases/update-document.md +++ b/examples/2.4.x/client-flutter/examples/databases/update-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.updateDocument( +models.Document result = await databases.updateDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/databases/update-transaction.md b/examples/2.4.x/client-flutter/examples/databases/update-transaction.md index a882eb92c..1695fe8c5 100644 --- a/examples/2.4.x/client-flutter/examples/databases/update-transaction.md +++ b/examples/2.4.x/client-flutter/examples/databases/update-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Databases databases = Databases(client); -Transaction result = await databases.updateTransaction( +models.Transaction result = await databases.updateTransaction( transactionId: '', commit: false, // optional rollback: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/databases/upsert-document.md b/examples/2.4.x/client-flutter/examples/databases/upsert-document.md index 6678a0dcb..1cd30f25d 100644 --- a/examples/2.4.x/client-flutter/examples/databases/upsert-document.md +++ b/examples/2.4.x/client-flutter/examples/databases/upsert-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.upsertDocument( +models.Document result = await databases.upsertDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/create-document.md b/examples/2.4.x/client-flutter/examples/documentsdb/create-document.md index d4b564e2e..5ed989adb 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/create-document.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/create-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.createDocument( +models.Document result = await documentsDB.createDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/create-documents.md b/examples/2.4.x/client-flutter/examples/documentsdb/create-documents.md index 95dd8676e..b3f24c51e 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/create-documents.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/create-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,12 +8,12 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DocumentList result = await documentsDB.createDocuments( +models.DocumentList result = await documentsDB.createDocuments( databaseId: '', collectionId: '', documents: [ { - "$id": "example1", + "\$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/create-operations.md b/examples/2.4.x/client-flutter/examples/documentsdb/create-operations.md index a4d1ecddb..5e5799d88 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/create-operations.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/create-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Transaction result = await documentsDB.createOperations( +models.Transaction result = await documentsDB.createOperations( transactionId: '', operations: [ { diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/create-transaction.md b/examples/2.4.x/client-flutter/examples/documentsdb/create-transaction.md index 2d9cb9f72..bd287408d 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/create-transaction.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/create-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Transaction result = await documentsDB.createTransaction( +models.Transaction result = await documentsDB.createTransaction( ttl: 60, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/decrement-document-attribute.md b/examples/2.4.x/client-flutter/examples/documentsdb/decrement-document-attribute.md index dcdac3aae..fbf0a5a7c 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/decrement-document-attribute.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/decrement-document-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.decrementDocumentAttribute( +models.Document result = await documentsDB.decrementDocumentAttribute( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/get-document.md b/examples/2.4.x/client-flutter/examples/documentsdb/get-document.md index 45db46e6a..f37160a18 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/get-document.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/get-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.getDocument( +models.Document result = await documentsDB.getDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/get-transaction.md b/examples/2.4.x/client-flutter/examples/documentsdb/get-transaction.md index 4b1a5f1f8..778856811 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/get-transaction.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/get-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Transaction result = await documentsDB.getTransaction( +models.Transaction result = await documentsDB.getTransaction( transactionId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/increment-document-attribute.md b/examples/2.4.x/client-flutter/examples/documentsdb/increment-document-attribute.md index c2c6e95c8..5df158fc6 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/increment-document-attribute.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/increment-document-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.incrementDocumentAttribute( +models.Document result = await documentsDB.incrementDocumentAttribute( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/list-documents.md b/examples/2.4.x/client-flutter/examples/documentsdb/list-documents.md index 92d2651c5..bd5f04b7e 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/list-documents.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/list-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DocumentList result = await documentsDB.listDocuments( +models.DocumentList result = await documentsDB.listDocuments( databaseId: '', collectionId: '', queries: [], // optional diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/list-transactions.md b/examples/2.4.x/client-flutter/examples/documentsdb/list-transactions.md index f6ab157d6..73e59ee48 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/list-transactions.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/list-transactions.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -TransactionList result = await documentsDB.listTransactions( +models.TransactionList result = await documentsDB.listTransactions( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/update-document.md b/examples/2.4.x/client-flutter/examples/documentsdb/update-document.md index 1b9fba9a5..ec7529591 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/update-document.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/update-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.updateDocument( +models.Document result = await documentsDB.updateDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/update-transaction.md b/examples/2.4.x/client-flutter/examples/documentsdb/update-transaction.md index ebcf17be1..049ed68c1 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/update-transaction.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/update-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Transaction result = await documentsDB.updateTransaction( +models.Transaction result = await documentsDB.updateTransaction( transactionId: '', commit: false, // optional rollback: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/documentsdb/upsert-document.md b/examples/2.4.x/client-flutter/examples/documentsdb/upsert-document.md index bdf3844b1..61baa69d5 100644 --- a/examples/2.4.x/client-flutter/examples/documentsdb/upsert-document.md +++ b/examples/2.4.x/client-flutter/examples/documentsdb/upsert-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.upsertDocument( +models.Document result = await documentsDB.upsertDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/functions/create-execution.md b/examples/2.4.x/client-flutter/examples/functions/create-execution.md index 0e2197489..d8970844d 100644 --- a/examples/2.4.x/client-flutter/examples/functions/create-execution.md +++ b/examples/2.4.x/client-flutter/examples/functions/create-execution.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/enums.dart' as enums; Client client = Client() @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Execution result = await functions.createExecution( +models.Execution result = await functions.createExecution( functionId: '', body: '', // optional xasync: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/functions/get-execution.md b/examples/2.4.x/client-flutter/examples/functions/get-execution.md index f17e10c1d..7ad87740a 100644 --- a/examples/2.4.x/client-flutter/examples/functions/get-execution.md +++ b/examples/2.4.x/client-flutter/examples/functions/get-execution.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Functions functions = Functions(client); -Execution result = await functions.getExecution( +models.Execution result = await functions.getExecution( functionId: '', executionId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/functions/list-executions.md b/examples/2.4.x/client-flutter/examples/functions/list-executions.md index ae31ffcce..df498257d 100644 --- a/examples/2.4.x/client-flutter/examples/functions/list-executions.md +++ b/examples/2.4.x/client-flutter/examples/functions/list-executions.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Functions functions = Functions(client); -ExecutionList result = await functions.listExecutions( +models.ExecutionList result = await functions.listExecutions( functionId: '', queries: [], // optional total: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/graphql/mutation.md b/examples/2.4.x/client-flutter/examples/graphql/mutation.md index dca641597..e9632b861 100644 --- a/examples/2.4.x/client-flutter/examples/graphql/mutation.md +++ b/examples/2.4.x/client-flutter/examples/graphql/mutation.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Graphql graphql = Graphql(client); -Any result = await graphql.mutation( +models.Any result = await graphql.mutation( query: { "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" }, diff --git a/examples/2.4.x/client-flutter/examples/graphql/query.md b/examples/2.4.x/client-flutter/examples/graphql/query.md index 668c18457..de938d4af 100644 --- a/examples/2.4.x/client-flutter/examples/graphql/query.md +++ b/examples/2.4.x/client-flutter/examples/graphql/query.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Graphql graphql = Graphql(client); -Any result = await graphql.query( +models.Any result = await graphql.query( query: { "query": "query { localeGet { ip } }" }, diff --git a/examples/2.4.x/client-flutter/examples/locale/get.md b/examples/2.4.x/client-flutter/examples/locale/get.md index 630211442..633588f30 100644 --- a/examples/2.4.x/client-flutter/examples/locale/get.md +++ b/examples/2.4.x/client-flutter/examples/locale/get.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,5 +8,5 @@ Client client = Client() Locale locale = Locale(client); -Locale result = await locale.get(); +models.Locale result = await locale.get(); ``` diff --git a/examples/2.4.x/client-flutter/examples/locale/list-codes.md b/examples/2.4.x/client-flutter/examples/locale/list-codes.md index 2161cf85c..e706e517a 100644 --- a/examples/2.4.x/client-flutter/examples/locale/list-codes.md +++ b/examples/2.4.x/client-flutter/examples/locale/list-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Locale locale = Locale(client); -LocaleCodeList result = await locale.listCodes( +models.LocaleCodeList result = await locale.listCodes( total: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/locale/list-continents.md b/examples/2.4.x/client-flutter/examples/locale/list-continents.md index 271db2adc..fb4ae372b 100644 --- a/examples/2.4.x/client-flutter/examples/locale/list-continents.md +++ b/examples/2.4.x/client-flutter/examples/locale/list-continents.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Locale locale = Locale(client); -ContinentList result = await locale.listContinents( +models.ContinentList result = await locale.listContinents( total: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/locale/list-countries-eu.md b/examples/2.4.x/client-flutter/examples/locale/list-countries-eu.md index 3b3d69276..0f734c5fd 100644 --- a/examples/2.4.x/client-flutter/examples/locale/list-countries-eu.md +++ b/examples/2.4.x/client-flutter/examples/locale/list-countries-eu.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Locale locale = Locale(client); -CountryList result = await locale.listCountriesEU( +models.CountryList result = await locale.listCountriesEU( total: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/locale/list-countries-phones.md b/examples/2.4.x/client-flutter/examples/locale/list-countries-phones.md index eb66e3628..1a29575a4 100644 --- a/examples/2.4.x/client-flutter/examples/locale/list-countries-phones.md +++ b/examples/2.4.x/client-flutter/examples/locale/list-countries-phones.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Locale locale = Locale(client); -PhoneList result = await locale.listCountriesPhones( +models.PhoneList result = await locale.listCountriesPhones( total: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/locale/list-countries.md b/examples/2.4.x/client-flutter/examples/locale/list-countries.md index fb2b2220a..e1059d447 100644 --- a/examples/2.4.x/client-flutter/examples/locale/list-countries.md +++ b/examples/2.4.x/client-flutter/examples/locale/list-countries.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Locale locale = Locale(client); -CountryList result = await locale.listCountries( +models.CountryList result = await locale.listCountries( total: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/locale/list-currencies.md b/examples/2.4.x/client-flutter/examples/locale/list-currencies.md index 05810fe6b..276264cea 100644 --- a/examples/2.4.x/client-flutter/examples/locale/list-currencies.md +++ b/examples/2.4.x/client-flutter/examples/locale/list-currencies.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Locale locale = Locale(client); -CurrencyList result = await locale.listCurrencies( +models.CurrencyList result = await locale.listCurrencies( total: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/locale/list-languages.md b/examples/2.4.x/client-flutter/examples/locale/list-languages.md index 559ccddd7..4b8763f8c 100644 --- a/examples/2.4.x/client-flutter/examples/locale/list-languages.md +++ b/examples/2.4.x/client-flutter/examples/locale/list-languages.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Locale locale = Locale(client); -LanguageList result = await locale.listLanguages( +models.LanguageList result = await locale.listLanguages( total: false, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/messaging/create-subscriber.md b/examples/2.4.x/client-flutter/examples/messaging/create-subscriber.md index e28a1ab62..6b4bb2eea 100644 --- a/examples/2.4.x/client-flutter/examples/messaging/create-subscriber.md +++ b/examples/2.4.x/client-flutter/examples/messaging/create-subscriber.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Subscriber result = await messaging.createSubscriber( +models.Subscriber result = await messaging.createSubscriber( topicId: '', subscriberId: '', targetId: '', diff --git a/examples/2.4.x/client-flutter/examples/oauth2/approve.md b/examples/2.4.x/client-flutter/examples/oauth2/approve.md index 81a121c2d..02117db45 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/approve.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/approve.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Approve result = await oauth2.approve( +models.Oauth2Approve result = await oauth2.approve( grantId: '', authorizationDetails: '', // optional scope: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/oauth2/authorize-post.md b/examples/2.4.x/client-flutter/examples/oauth2/authorize-post.md index 7bda4af95..05d9c0202 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/authorize-post.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Authorize result = await oauth2.authorizePost( +models.Oauth2Authorize result = await oauth2.authorizePost( clientId: '', // optional redirectUri: 'https://example.com', // optional responseType: '', // optional @@ -19,7 +20,7 @@ Oauth2Authorize result = await oauth2.authorizePost( prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional requestUri: '', // optional ); diff --git a/examples/2.4.x/client-flutter/examples/oauth2/authorize.md b/examples/2.4.x/client-flutter/examples/oauth2/authorize.md index 46575c33f..0fe1d6912 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/authorize.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/authorize.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Authorize result = await oauth2.authorize( +models.Oauth2Authorize result = await oauth2.authorize( clientId: '', // optional redirectUri: 'https://example.com', // optional responseType: '', // optional @@ -19,7 +20,7 @@ Oauth2Authorize result = await oauth2.authorize( prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional requestUri: '', // optional ); diff --git a/examples/2.4.x/client-flutter/examples/oauth2/create-device-authorization.md b/examples/2.4.x/client-flutter/examples/oauth2/create-device-authorization.md index b35d92869..15a56ebbd 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/create-device-authorization.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,11 +8,11 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2DeviceAuthorization result = await oauth2.createDeviceAuthorization( +models.Oauth2DeviceAuthorization result = await oauth2.createDeviceAuthorization( clientId: '', // optional scope: '', // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/oauth2/create-grant.md b/examples/2.4.x/client-flutter/examples/oauth2/create-grant.md index 5d9fefa41..f1f5a5c1e 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/create-grant.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/create-grant.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Grant result = await oauth2.createGrant( +models.Oauth2Grant result = await oauth2.createGrant( userCode: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/oauth2/create-par.md b/examples/2.4.x/client-flutter/examples/oauth2/create-par.md index 016b8312a..a36c40790 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/create-par.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/create-par.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2PAR result = await oauth2.createPAR( +models.Oauth2PAR result = await oauth2.createPAR( clientId: '', redirectUri: 'https://example.com', responseType: 'code', @@ -19,7 +20,7 @@ Oauth2PAR result = await oauth2.createPAR( prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/oauth2/create-token.md b/examples/2.4.x/client-flutter/examples/oauth2/create-token.md index fcc22e595..9cb0b8278 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/create-token.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/create-token.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Token result = await oauth2.createToken( +models.Oauth2Token result = await oauth2.createToken( grantType: '', code: '', // optional refreshToken: '', // optional @@ -16,7 +17,7 @@ Oauth2Token result = await oauth2.createToken( clientSecret: '', // optional codeVerifier: '', // optional redirectUri: 'https://example.com', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/oauth2/get-grant.md b/examples/2.4.x/client-flutter/examples/oauth2/get-grant.md index b97ddde4c..fbb461d28 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/get-grant.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/get-grant.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Grant result = await oauth2.getGrant( +models.Oauth2Grant result = await oauth2.getGrant( grantId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/oauth2/list-organizations.md b/examples/2.4.x/client-flutter/examples/oauth2/list-organizations.md index 8006c9e6c..37376b57f 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/list-organizations.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/list-organizations.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2OrganizationList result = await oauth2.listOrganizations( +models.Oauth2OrganizationList result = await oauth2.listOrganizations( limit: 1, // optional offset: 0, // optional search: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/oauth2/list-projects.md b/examples/2.4.x/client-flutter/examples/oauth2/list-projects.md index d973b0ded..0a2924ed6 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/list-projects.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/list-projects.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2ProjectList result = await oauth2.listProjects( +models.Oauth2ProjectList result = await oauth2.listProjects( limit: 1, // optional offset: 0, // optional search: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/oauth2/logout-post.md b/examples/2.4.x/client-flutter/examples/oauth2/logout-post.md index 53e0873df..3d1637847 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/logout-post.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/logout-post.md @@ -7,7 +7,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); - result = await oauth2.logoutPost( +models. result = await oauth2.logoutPost( idTokenHint: '', // optional logoutHint: '', // optional clientId: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/oauth2/logout.md b/examples/2.4.x/client-flutter/examples/oauth2/logout.md index 7536d2d2a..3892325ed 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/logout.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/logout.md @@ -7,7 +7,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); - result = await oauth2.logout( +models. result = await oauth2.logout( idTokenHint: '', // optional logoutHint: '', // optional clientId: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/oauth2/reject.md b/examples/2.4.x/client-flutter/examples/oauth2/reject.md index beac37d62..20f5cb228 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/reject.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/reject.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Reject result = await oauth2.reject( +models.Oauth2Reject result = await oauth2.reject( grantId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/oauth2/revoke.md b/examples/2.4.x/client-flutter/examples/oauth2/revoke.md index 988f3315d..777340f7d 100644 --- a/examples/2.4.x/client-flutter/examples/oauth2/revoke.md +++ b/examples/2.4.x/client-flutter/examples/oauth2/revoke.md @@ -7,7 +7,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); - result = await oauth2.revoke( +models. result = await oauth2.revoke( token: '', tokenTypeHint: 'access_token', // optional clientId: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/organization/create-installation.md b/examples/2.4.x/client-flutter/examples/organization/create-installation.md index d28dacfc2..520c4e41e 100644 --- a/examples/2.4.x/client-flutter/examples/organization/create-installation.md +++ b/examples/2.4.x/client-flutter/examples/organization/create-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Organization organization = Organization(client); -AppInstallation result = await organization.createInstallation( +models.AppInstallation result = await organization.createInstallation( appId: '', authorizationDetails: '', // optional ); diff --git a/examples/2.4.x/client-flutter/examples/organization/get-installation.md b/examples/2.4.x/client-flutter/examples/organization/get-installation.md index dd2d7ac71..f6a1ef775 100644 --- a/examples/2.4.x/client-flutter/examples/organization/get-installation.md +++ b/examples/2.4.x/client-flutter/examples/organization/get-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Organization organization = Organization(client); -AppInstallation result = await organization.getInstallation( +models.AppInstallation result = await organization.getInstallation( installationId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/organization/list-installations.md b/examples/2.4.x/client-flutter/examples/organization/list-installations.md index bdecb1083..58350547b 100644 --- a/examples/2.4.x/client-flutter/examples/organization/list-installations.md +++ b/examples/2.4.x/client-flutter/examples/organization/list-installations.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Organization organization = Organization(client); -AppInstallationList result = await organization.listInstallations( +models.AppInstallationList result = await organization.listInstallations( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/organization/update-installation.md b/examples/2.4.x/client-flutter/examples/organization/update-installation.md index fa834d49f..8d2fddf44 100644 --- a/examples/2.4.x/client-flutter/examples/organization/update-installation.md +++ b/examples/2.4.x/client-flutter/examples/organization/update-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Organization organization = Organization(client); -AppInstallation result = await organization.updateInstallation( +models.AppInstallation result = await organization.updateInstallation( installationId: '', authorizationDetails: '', // optional ); diff --git a/examples/2.4.x/client-flutter/examples/presences/get.md b/examples/2.4.x/client-flutter/examples/presences/get.md index 9fad57c6f..fd10e547a 100644 --- a/examples/2.4.x/client-flutter/examples/presences/get.md +++ b/examples/2.4.x/client-flutter/examples/presences/get.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Presences presences = Presences(client); -Presence result = await presences.get( +models.Presence result = await presences.get( presenceId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/presences/list.md b/examples/2.4.x/client-flutter/examples/presences/list.md index 5810a2984..cfd67ab00 100644 --- a/examples/2.4.x/client-flutter/examples/presences/list.md +++ b/examples/2.4.x/client-flutter/examples/presences/list.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Presences presences = Presences(client); -PresenceList result = await presences.list( +models.PresenceList result = await presences.list( queries: [], // optional total: false, // optional ttl: 0, // optional diff --git a/examples/2.4.x/client-flutter/examples/presences/update.md b/examples/2.4.x/client-flutter/examples/presences/update.md index 84a64be01..ed52a7b0a 100644 --- a/examples/2.4.x/client-flutter/examples/presences/update.md +++ b/examples/2.4.x/client-flutter/examples/presences/update.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() Presences presences = Presences(client); -Presence result = await presences.update( +models.Presence result = await presences.update( presenceId: '', status: '', // optional expiresAt: '2020-10-15T06:38:00.000+00:00', // optional diff --git a/examples/2.4.x/client-flutter/examples/presences/upsert.md b/examples/2.4.x/client-flutter/examples/presences/upsert.md index 32acc92fe..1620ff553 100644 --- a/examples/2.4.x/client-flutter/examples/presences/upsert.md +++ b/examples/2.4.x/client-flutter/examples/presences/upsert.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() Presences presences = Presences(client); -Presence result = await presences.upsert( +models.Presence result = await presences.upsert( presenceId: '', status: '', permissions: [Permission.read(Role.any())], // optional diff --git a/examples/2.4.x/client-flutter/examples/storage/create-file.md b/examples/2.4.x/client-flutter/examples/storage/create-file.md index 7d8fbd13c..f72673402 100644 --- a/examples/2.4.x/client-flutter/examples/storage/create-file.md +++ b/examples/2.4.x/client-flutter/examples/storage/create-file.md @@ -1,6 +1,7 @@ ```dart import 'dart:io'; import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Storage storage = Storage(client); -File result = await storage.createFile( +models.File result = await storage.createFile( bucketId: '', fileId: '', file: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), diff --git a/examples/2.4.x/client-flutter/examples/storage/get-file.md b/examples/2.4.x/client-flutter/examples/storage/get-file.md index 9f1adb6e7..8cd043ca2 100644 --- a/examples/2.4.x/client-flutter/examples/storage/get-file.md +++ b/examples/2.4.x/client-flutter/examples/storage/get-file.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Storage storage = Storage(client); -File result = await storage.getFile( +models.File result = await storage.getFile( bucketId: '', fileId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/storage/list-files.md b/examples/2.4.x/client-flutter/examples/storage/list-files.md index 0decd6953..41f947a5a 100644 --- a/examples/2.4.x/client-flutter/examples/storage/list-files.md +++ b/examples/2.4.x/client-flutter/examples/storage/list-files.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Storage storage = Storage(client); -FileList result = await storage.listFiles( +models.FileList result = await storage.listFiles( bucketId: '', queries: [], // optional search: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/storage/update-file.md b/examples/2.4.x/client-flutter/examples/storage/update-file.md index 90814329a..fe33f0bf2 100644 --- a/examples/2.4.x/client-flutter/examples/storage/update-file.md +++ b/examples/2.4.x/client-flutter/examples/storage/update-file.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() Storage storage = Storage(client); -File result = await storage.updateFile( +models.File result = await storage.updateFile( bucketId: '', fileId: '', name: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/create-operations.md b/examples/2.4.x/client-flutter/examples/tablesdb/create-operations.md index bc779b6bf..8cdbeb48c 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/create-operations.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/create-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Transaction result = await tablesDB.createOperations( +models.Transaction result = await tablesDB.createOperations( transactionId: '', operations: [ { diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/create-row.md b/examples/2.4.x/client-flutter/examples/tablesdb/create-row.md index cb5d85783..e3b639c71 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/create-row.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/create-row.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.createRow( +models.Row result = await tablesDB.createRow( databaseId: '', tableId: '', rowId: '', diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/create-transaction.md b/examples/2.4.x/client-flutter/examples/tablesdb/create-transaction.md index 527dde392..c27b2c3f0 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/create-transaction.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/create-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Transaction result = await tablesDB.createTransaction( +models.Transaction result = await tablesDB.createTransaction( ttl: 60, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/decrement-row-column.md b/examples/2.4.x/client-flutter/examples/tablesdb/decrement-row-column.md index bee4987f1..c6582bb72 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/decrement-row-column.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/decrement-row-column.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.decrementRowColumn( +models.Row result = await tablesDB.decrementRowColumn( databaseId: '', tableId: '', rowId: '', diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/get-row.md b/examples/2.4.x/client-flutter/examples/tablesdb/get-row.md index 6e385a846..560c6ad3c 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/get-row.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/get-row.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.getRow( +models.Row result = await tablesDB.getRow( databaseId: '', tableId: '', rowId: '', diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/get-transaction.md b/examples/2.4.x/client-flutter/examples/tablesdb/get-transaction.md index 39b02a77f..7137420bc 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/get-transaction.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/get-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Transaction result = await tablesDB.getTransaction( +models.Transaction result = await tablesDB.getTransaction( transactionId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/increment-row-column.md b/examples/2.4.x/client-flutter/examples/tablesdb/increment-row-column.md index 9b0e47694..8123160c0 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/increment-row-column.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/increment-row-column.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.incrementRowColumn( +models.Row result = await tablesDB.incrementRowColumn( databaseId: '', tableId: '', rowId: '', diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/list-rows.md b/examples/2.4.x/client-flutter/examples/tablesdb/list-rows.md index a2637a93e..f681a236a 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/list-rows.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/list-rows.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -RowList result = await tablesDB.listRows( +models.RowList result = await tablesDB.listRows( databaseId: '', tableId: '', queries: [], // optional diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/list-transactions.md b/examples/2.4.x/client-flutter/examples/tablesdb/list-transactions.md index fd1344377..a863deab2 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/list-transactions.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/list-transactions.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -TransactionList result = await tablesDB.listTransactions( +models.TransactionList result = await tablesDB.listTransactions( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/update-row.md b/examples/2.4.x/client-flutter/examples/tablesdb/update-row.md index 3cf3c9551..1d42d6378 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/update-row.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/update-row.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.updateRow( +models.Row result = await tablesDB.updateRow( databaseId: '', tableId: '', rowId: '', diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/update-transaction.md b/examples/2.4.x/client-flutter/examples/tablesdb/update-transaction.md index d5a8e0820..cfc7f99e2 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/update-transaction.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/update-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Transaction result = await tablesDB.updateTransaction( +models.Transaction result = await tablesDB.updateTransaction( transactionId: '', commit: false, // optional rollback: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/tablesdb/upsert-row.md b/examples/2.4.x/client-flutter/examples/tablesdb/upsert-row.md index 74c7d2c58..a9df95fb1 100644 --- a/examples/2.4.x/client-flutter/examples/tablesdb/upsert-row.md +++ b/examples/2.4.x/client-flutter/examples/tablesdb/upsert-row.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.upsertRow( +models.Row result = await tablesDB.upsertRow( databaseId: '', tableId: '', rowId: '', diff --git a/examples/2.4.x/client-flutter/examples/teams/create-installation.md b/examples/2.4.x/client-flutter/examples/teams/create-installation.md index 4ad63b8de..26732254c 100644 --- a/examples/2.4.x/client-flutter/examples/teams/create-installation.md +++ b/examples/2.4.x/client-flutter/examples/teams/create-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -AppInstallation result = await teams.createInstallation( +models.AppInstallation result = await teams.createInstallation( teamId: '', appId: '', authorizationDetails: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/teams/create-membership.md b/examples/2.4.x/client-flutter/examples/teams/create-membership.md index 01fa470e4..489400957 100644 --- a/examples/2.4.x/client-flutter/examples/teams/create-membership.md +++ b/examples/2.4.x/client-flutter/examples/teams/create-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Membership result = await teams.createMembership( +models.Membership result = await teams.createMembership( teamId: '', roles: ["editor"], email: 'email@example.com', // optional diff --git a/examples/2.4.x/client-flutter/examples/teams/create.md b/examples/2.4.x/client-flutter/examples/teams/create.md index 7a4af366f..4bc35166d 100644 --- a/examples/2.4.x/client-flutter/examples/teams/create.md +++ b/examples/2.4.x/client-flutter/examples/teams/create.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Team result = await teams.create( +models.Team result = await teams.create( teamId: '', name: '', roles: [], // optional diff --git a/examples/2.4.x/client-flutter/examples/teams/get-installation.md b/examples/2.4.x/client-flutter/examples/teams/get-installation.md index eec876623..10f3f0963 100644 --- a/examples/2.4.x/client-flutter/examples/teams/get-installation.md +++ b/examples/2.4.x/client-flutter/examples/teams/get-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -AppInstallation result = await teams.getInstallation( +models.AppInstallation result = await teams.getInstallation( teamId: '', installationId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/teams/get-membership.md b/examples/2.4.x/client-flutter/examples/teams/get-membership.md index 3a2906b9c..798aa48ff 100644 --- a/examples/2.4.x/client-flutter/examples/teams/get-membership.md +++ b/examples/2.4.x/client-flutter/examples/teams/get-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Membership result = await teams.getMembership( +models.Membership result = await teams.getMembership( teamId: '', membershipId: '', ); diff --git a/examples/2.4.x/client-flutter/examples/teams/get-prefs.md b/examples/2.4.x/client-flutter/examples/teams/get-prefs.md index e35006fa5..6b9805b09 100644 --- a/examples/2.4.x/client-flutter/examples/teams/get-prefs.md +++ b/examples/2.4.x/client-flutter/examples/teams/get-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Preferences result = await teams.getPrefs( +models.Preferences result = await teams.getPrefs( teamId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/teams/get.md b/examples/2.4.x/client-flutter/examples/teams/get.md index 2a71db42b..df4f911fd 100644 --- a/examples/2.4.x/client-flutter/examples/teams/get.md +++ b/examples/2.4.x/client-flutter/examples/teams/get.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Team result = await teams.get( +models.Team result = await teams.get( teamId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/teams/list-installations.md b/examples/2.4.x/client-flutter/examples/teams/list-installations.md index 9c3aa8524..73818abd4 100644 --- a/examples/2.4.x/client-flutter/examples/teams/list-installations.md +++ b/examples/2.4.x/client-flutter/examples/teams/list-installations.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -AppInstallationList result = await teams.listInstallations( +models.AppInstallationList result = await teams.listInstallations( teamId: '', queries: [], // optional total: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/teams/list-memberships.md b/examples/2.4.x/client-flutter/examples/teams/list-memberships.md index bf643511c..b3a0ceef0 100644 --- a/examples/2.4.x/client-flutter/examples/teams/list-memberships.md +++ b/examples/2.4.x/client-flutter/examples/teams/list-memberships.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -MembershipList result = await teams.listMemberships( +models.MembershipList result = await teams.listMemberships( teamId: '', queries: [], // optional search: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/teams/list.md b/examples/2.4.x/client-flutter/examples/teams/list.md index 2de4ebfe8..9df25089b 100644 --- a/examples/2.4.x/client-flutter/examples/teams/list.md +++ b/examples/2.4.x/client-flutter/examples/teams/list.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -TeamList result = await teams.list( +models.TeamList result = await teams.list( queries: [], // optional search: '', // optional total: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/teams/update-installation.md b/examples/2.4.x/client-flutter/examples/teams/update-installation.md index e9e8ba4bf..5b66afa49 100644 --- a/examples/2.4.x/client-flutter/examples/teams/update-installation.md +++ b/examples/2.4.x/client-flutter/examples/teams/update-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -AppInstallation result = await teams.updateInstallation( +models.AppInstallation result = await teams.updateInstallation( teamId: '', installationId: '', authorizationDetails: '', // optional diff --git a/examples/2.4.x/client-flutter/examples/teams/update-membership-status.md b/examples/2.4.x/client-flutter/examples/teams/update-membership-status.md index ebb924b0a..7968476c3 100644 --- a/examples/2.4.x/client-flutter/examples/teams/update-membership-status.md +++ b/examples/2.4.x/client-flutter/examples/teams/update-membership-status.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Membership result = await teams.updateMembershipStatus( +models.Membership result = await teams.updateMembershipStatus( teamId: '', membershipId: '', userId: '', diff --git a/examples/2.4.x/client-flutter/examples/teams/update-membership.md b/examples/2.4.x/client-flutter/examples/teams/update-membership.md index 51b8178d3..a86fa3f1c 100644 --- a/examples/2.4.x/client-flutter/examples/teams/update-membership.md +++ b/examples/2.4.x/client-flutter/examples/teams/update-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Membership result = await teams.updateMembership( +models.Membership result = await teams.updateMembership( teamId: '', membershipId: '', roles: ["editor"], diff --git a/examples/2.4.x/client-flutter/examples/teams/update-name.md b/examples/2.4.x/client-flutter/examples/teams/update-name.md index 629e76082..1c9d65029 100644 --- a/examples/2.4.x/client-flutter/examples/teams/update-name.md +++ b/examples/2.4.x/client-flutter/examples/teams/update-name.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Team result = await teams.updateName( +models.Team result = await teams.updateName( teamId: '', name: '', ); diff --git a/examples/2.4.x/client-flutter/examples/teams/update-prefs.md b/examples/2.4.x/client-flutter/examples/teams/update-prefs.md index 1a53c4985..9d652cb9b 100644 --- a/examples/2.4.x/client-flutter/examples/teams/update-prefs.md +++ b/examples/2.4.x/client-flutter/examples/teams/update-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() Teams teams = Teams(client); -Preferences result = await teams.updatePrefs( +models.Preferences result = await teams.updatePrefs( teamId: '', prefs: {}, ); diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/create-document.md b/examples/2.4.x/client-flutter/examples/vectorsdb/create-document.md index fc39a7c10..ecc021765 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/create-document.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/create-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Document result = await vectorsDB.createDocument( +models.Document result = await vectorsDB.createDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/create-operations.md b/examples/2.4.x/client-flutter/examples/vectorsdb/create-operations.md index bf2dacd12..0604ef6b2 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/create-operations.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/create-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Transaction result = await vectorsDB.createOperations( +models.Transaction result = await vectorsDB.createOperations( transactionId: '', operations: [ { diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/create-query.md b/examples/2.4.x/client-flutter/examples/vectorsdb/create-query.md index fa41ee5c5..3b72a0c4f 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/create-query.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/create-query.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DocumentList result = await vectorsDB.createQuery( +models.DocumentList result = await vectorsDB.createQuery( databaseId: '', collectionId: '', queries: [], // optional diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/create-transaction.md b/examples/2.4.x/client-flutter/examples/vectorsdb/create-transaction.md index 9c8c96d3b..d197ad2a8 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/create-transaction.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/create-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Transaction result = await vectorsDB.createTransaction( +models.Transaction result = await vectorsDB.createTransaction( ttl: 60, // optional ); ``` diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/get-document.md b/examples/2.4.x/client-flutter/examples/vectorsdb/get-document.md index 28e544b37..42a2a2b86 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/get-document.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/get-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Document result = await vectorsDB.getDocument( +models.Document result = await vectorsDB.getDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/get-transaction.md b/examples/2.4.x/client-flutter/examples/vectorsdb/get-transaction.md index 1d191d09c..68023e002 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/get-transaction.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/get-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Transaction result = await vectorsDB.getTransaction( +models.Transaction result = await vectorsDB.getTransaction( transactionId: '', ); ``` diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/list-documents.md b/examples/2.4.x/client-flutter/examples/vectorsdb/list-documents.md index 03b4931de..26793163d 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/list-documents.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/list-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DocumentList result = await vectorsDB.listDocuments( +models.DocumentList result = await vectorsDB.listDocuments( databaseId: '', collectionId: '', queries: [], // optional diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/list-transactions.md b/examples/2.4.x/client-flutter/examples/vectorsdb/list-transactions.md index a22f32d03..befe53797 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/list-transactions.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/list-transactions.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -TransactionList result = await vectorsDB.listTransactions( +models.TransactionList result = await vectorsDB.listTransactions( queries: [], // optional total: false, // optional ); diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/update-document.md b/examples/2.4.x/client-flutter/examples/vectorsdb/update-document.md index 8c2a90919..0457e8553 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/update-document.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/update-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Document result = await vectorsDB.updateDocument( +models.Document result = await vectorsDB.updateDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/update-transaction.md b/examples/2.4.x/client-flutter/examples/vectorsdb/update-transaction.md index 1abd8b028..6915d1443 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/update-transaction.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/update-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -7,7 +8,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Transaction result = await vectorsDB.updateTransaction( +models.Transaction result = await vectorsDB.updateTransaction( transactionId: '', commit: false, // optional rollback: false, // optional diff --git a/examples/2.4.x/client-flutter/examples/vectorsdb/upsert-document.md b/examples/2.4.x/client-flutter/examples/vectorsdb/upsert-document.md index 1367bba4a..de7503fb5 100644 --- a/examples/2.4.x/client-flutter/examples/vectorsdb/upsert-document.md +++ b/examples/2.4.x/client-flutter/examples/vectorsdb/upsert-document.md @@ -1,5 +1,6 @@ ```dart import 'package:appwrite/appwrite.dart'; +import 'package:appwrite/models.dart' as models; import 'package:appwrite/permission.dart'; import 'package:appwrite/role.dart'; @@ -9,7 +10,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Document result = await vectorsDB.upsertDocument( +models.Document result = await vectorsDB.upsertDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/client-graphql/examples/oauth2/authorize-post.md b/examples/2.4.x/client-graphql/examples/oauth2/authorize-post.md index ec6d490ae..8e345bbe6 100644 --- a/examples/2.4.x/client-graphql/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/client-graphql/examples/oauth2/authorize-post.md @@ -12,7 +12,7 @@ mutation { prompt: "", maxAge: 0, authorizationDetails: "", - resource: "", + resource: [], audience: "", requestUri: "" ) { diff --git a/examples/2.4.x/client-graphql/examples/oauth2/authorize.md b/examples/2.4.x/client-graphql/examples/oauth2/authorize.md index f6e74d435..81c4f15f7 100644 --- a/examples/2.4.x/client-graphql/examples/oauth2/authorize.md +++ b/examples/2.4.x/client-graphql/examples/oauth2/authorize.md @@ -12,7 +12,7 @@ query { prompt: "", maxAge: 0, authorizationDetails: "", - resource: "", + resource: [], audience: "", requestUri: "" ) { diff --git a/examples/2.4.x/client-graphql/examples/oauth2/create-device-authorization.md b/examples/2.4.x/client-graphql/examples/oauth2/create-device-authorization.md index dddd74a5f..39fab7e91 100644 --- a/examples/2.4.x/client-graphql/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/client-graphql/examples/oauth2/create-device-authorization.md @@ -4,7 +4,7 @@ mutation { clientId: "", scope: "", authorizationDetails: "", - resource: "", + resource: [], audience: "" ) { device_code diff --git a/examples/2.4.x/client-graphql/examples/oauth2/create-par.md b/examples/2.4.x/client-graphql/examples/oauth2/create-par.md index 7b360967c..0d7ef51f3 100644 --- a/examples/2.4.x/client-graphql/examples/oauth2/create-par.md +++ b/examples/2.4.x/client-graphql/examples/oauth2/create-par.md @@ -12,7 +12,7 @@ mutation { prompt: "", maxAge: 0, authorizationDetails: "", - resource: "", + resource: [], audience: "" ) { request_uri diff --git a/examples/2.4.x/client-graphql/examples/oauth2/create-token.md b/examples/2.4.x/client-graphql/examples/oauth2/create-token.md index 24f812bae..bcdb00e6d 100644 --- a/examples/2.4.x/client-graphql/examples/oauth2/create-token.md +++ b/examples/2.4.x/client-graphql/examples/oauth2/create-token.md @@ -9,7 +9,7 @@ mutation { clientSecret: "", codeVerifier: "", redirectUri: "https://example.com", - resource: "", + resource: [], audience: "" ) { access_token diff --git a/examples/2.4.x/client-react-native/examples/oauth2/authorize-post.md b/examples/2.4.x/client-react-native/examples/oauth2/authorize-post.md index e27aa7e3b..f7dd540c8 100644 --- a/examples/2.4.x/client-react-native/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/client-react-native/examples/oauth2/authorize-post.md @@ -19,7 +19,7 @@ const result = await oauth2.authorizePost({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional requestUri: '', // optional }); diff --git a/examples/2.4.x/client-react-native/examples/oauth2/authorize.md b/examples/2.4.x/client-react-native/examples/oauth2/authorize.md index 039dc744e..256e9cb69 100644 --- a/examples/2.4.x/client-react-native/examples/oauth2/authorize.md +++ b/examples/2.4.x/client-react-native/examples/oauth2/authorize.md @@ -19,7 +19,7 @@ const result = await oauth2.authorize({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional requestUri: '', // optional }); diff --git a/examples/2.4.x/client-react-native/examples/oauth2/create-device-authorization.md b/examples/2.4.x/client-react-native/examples/oauth2/create-device-authorization.md index c136011b3..1219db51f 100644 --- a/examples/2.4.x/client-react-native/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/client-react-native/examples/oauth2/create-device-authorization.md @@ -11,7 +11,7 @@ const result = await oauth2.createDeviceAuthorization({ clientId: '', // optional scope: '', // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/client-react-native/examples/oauth2/create-par.md b/examples/2.4.x/client-react-native/examples/oauth2/create-par.md index 5d9b57830..425e7a863 100644 --- a/examples/2.4.x/client-react-native/examples/oauth2/create-par.md +++ b/examples/2.4.x/client-react-native/examples/oauth2/create-par.md @@ -19,7 +19,7 @@ const result = await oauth2.createPAR({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/client-react-native/examples/oauth2/create-token.md b/examples/2.4.x/client-react-native/examples/oauth2/create-token.md index 3be9ff4a6..567bfb74d 100644 --- a/examples/2.4.x/client-react-native/examples/oauth2/create-token.md +++ b/examples/2.4.x/client-react-native/examples/oauth2/create-token.md @@ -16,7 +16,7 @@ const result = await oauth2.createToken({ clientSecret: '', // optional codeVerifier: '', // optional redirectUri: 'https://example.com', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/client-rest/examples/oauth2/authorize-post.md b/examples/2.4.x/client-rest/examples/oauth2/authorize-post.md index 8a81c3fd4..8ad40fae7 100644 --- a/examples/2.4.x/client-rest/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/client-rest/examples/oauth2/authorize-post.md @@ -17,7 +17,7 @@ X-Appwrite-Response-Format: 2.4.0 "prompt": "", "max_age": 0, "authorization_details": "", - "resource": "", + "resource": [], "audience": "", "request_uri": "" } diff --git a/examples/2.4.x/client-rest/examples/oauth2/create-device-authorization.md b/examples/2.4.x/client-rest/examples/oauth2/create-device-authorization.md index 84c2139fc..5fcc1acbf 100644 --- a/examples/2.4.x/client-rest/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/client-rest/examples/oauth2/create-device-authorization.md @@ -9,7 +9,7 @@ X-Appwrite-Response-Format: 2.4.0 "client_id": "", "scope": "", "authorization_details": "", - "resource": "", + "resource": [], "audience": "" } ``` diff --git a/examples/2.4.x/client-rest/examples/oauth2/create-par.md b/examples/2.4.x/client-rest/examples/oauth2/create-par.md index 179f5115a..90f13e5b4 100644 --- a/examples/2.4.x/client-rest/examples/oauth2/create-par.md +++ b/examples/2.4.x/client-rest/examples/oauth2/create-par.md @@ -17,7 +17,7 @@ X-Appwrite-Response-Format: 2.4.0 "prompt": "", "max_age": 0, "authorization_details": "", - "resource": "", + "resource": [], "audience": "" } ``` diff --git a/examples/2.4.x/client-rest/examples/oauth2/create-token.md b/examples/2.4.x/client-rest/examples/oauth2/create-token.md index dce3a41b0..02193fbd0 100644 --- a/examples/2.4.x/client-rest/examples/oauth2/create-token.md +++ b/examples/2.4.x/client-rest/examples/oauth2/create-token.md @@ -14,7 +14,7 @@ X-Appwrite-Response-Format: 2.4.0 "client_secret": "", "code_verifier": "", "redirect_uri": "https://example.com", - "resource": "", + "resource": [], "audience": "" } ``` diff --git a/examples/2.4.x/client-web/examples/oauth2/authorize-post.md b/examples/2.4.x/client-web/examples/oauth2/authorize-post.md index 7664d1054..f0ac30aaf 100644 --- a/examples/2.4.x/client-web/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/client-web/examples/oauth2/authorize-post.md @@ -19,7 +19,7 @@ const result = await oauth2.authorizePost({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional requestUri: '', // optional }); diff --git a/examples/2.4.x/client-web/examples/oauth2/authorize.md b/examples/2.4.x/client-web/examples/oauth2/authorize.md index 495fd11eb..cd48dcfb1 100644 --- a/examples/2.4.x/client-web/examples/oauth2/authorize.md +++ b/examples/2.4.x/client-web/examples/oauth2/authorize.md @@ -19,7 +19,7 @@ const result = await oauth2.authorize({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional requestUri: '', // optional }); diff --git a/examples/2.4.x/client-web/examples/oauth2/create-device-authorization.md b/examples/2.4.x/client-web/examples/oauth2/create-device-authorization.md index 56c0236ba..56e15ae2d 100644 --- a/examples/2.4.x/client-web/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/client-web/examples/oauth2/create-device-authorization.md @@ -11,7 +11,7 @@ const result = await oauth2.createDeviceAuthorization({ clientId: '', // optional scope: '', // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/client-web/examples/oauth2/create-par.md b/examples/2.4.x/client-web/examples/oauth2/create-par.md index c345b2c03..a2ce80e61 100644 --- a/examples/2.4.x/client-web/examples/oauth2/create-par.md +++ b/examples/2.4.x/client-web/examples/oauth2/create-par.md @@ -19,7 +19,7 @@ const result = await oauth2.createPAR({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/client-web/examples/oauth2/create-token.md b/examples/2.4.x/client-web/examples/oauth2/create-token.md index 0a2a3c718..f9d5d1ba6 100644 --- a/examples/2.4.x/client-web/examples/oauth2/create-token.md +++ b/examples/2.4.x/client-web/examples/oauth2/create-token.md @@ -16,7 +16,7 @@ const result = await oauth2.createToken({ clientSecret: '', // optional codeVerifier: '', // optional redirectUri: 'https://example.com', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/console-cli/examples/advisor/delete-report.md b/examples/2.4.x/console-cli/examples/advisor/delete-report.md new file mode 100644 index 000000000..624041c22 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/advisor/delete-report.md @@ -0,0 +1,4 @@ +```bash +appwrite advisor delete-report \ + --report-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/advisor/get-insight.md b/examples/2.4.x/console-cli/examples/advisor/get-insight.md new file mode 100644 index 000000000..9f9490e82 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/advisor/get-insight.md @@ -0,0 +1,5 @@ +```bash +appwrite advisor get-insight \ + --report-id '' \ + --insight-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/advisor/get-report.md b/examples/2.4.x/console-cli/examples/advisor/get-report.md new file mode 100644 index 000000000..dae03a589 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/advisor/get-report.md @@ -0,0 +1,4 @@ +```bash +appwrite advisor get-report \ + --report-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/advisor/list-insights.md b/examples/2.4.x/console-cli/examples/advisor/list-insights.md new file mode 100644 index 000000000..4b6c2a803 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/advisor/list-insights.md @@ -0,0 +1,5 @@ +```bash +appwrite advisor list-insights \ + --report-id '' \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/advisor/list-reports.md b/examples/2.4.x/console-cli/examples/advisor/list-reports.md new file mode 100644 index 000000000..50abda665 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/advisor/list-reports.md @@ -0,0 +1,4 @@ +```bash +appwrite advisor list-reports \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/create-backup-policy.md b/examples/2.4.x/console-cli/examples/mongo/create-backup-policy.md new file mode 100644 index 000000000..a9cce6746 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/create-backup-policy.md @@ -0,0 +1,8 @@ +```bash +appwrite mongo create-backup-policy \ + --database-id '' \ + --policy-id '' \ + --name '' \ + --schedule '' \ + --retention 1 +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/create-backup.md b/examples/2.4.x/console-cli/examples/mongo/create-backup.md new file mode 100644 index 000000000..5c50747a1 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/create-backup.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo create-backup \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/create-branch.md b/examples/2.4.x/console-cli/examples/mongo/create-branch.md new file mode 100644 index 000000000..1f6303143 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/create-branch.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo create-branch \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/create-failover.md b/examples/2.4.x/console-cli/examples/mongo/create-failover.md new file mode 100644 index 000000000..db489509d --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/create-failover.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo create-failover \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/create-migration.md b/examples/2.4.x/console-cli/examples/mongo/create-migration.md new file mode 100644 index 000000000..2db36ec50 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/create-migration.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo create-migration \ + --database-id '' \ + --target-type shared +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/create-restoration.md b/examples/2.4.x/console-cli/examples/mongo/create-restoration.md new file mode 100644 index 000000000..a1bf71df1 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/create-restoration.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo create-restoration \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/create-upgrade.md b/examples/2.4.x/console-cli/examples/mongo/create-upgrade.md new file mode 100644 index 000000000..e8a9e352e --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/create-upgrade.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo create-upgrade \ + --database-id '' \ + --target-version '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/create.md b/examples/2.4.x/console-cli/examples/mongo/create.md new file mode 100644 index 000000000..490ba998e --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/create.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo create \ + --database-id '' \ + --name '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/delete-backup-policy.md b/examples/2.4.x/console-cli/examples/mongo/delete-backup-policy.md new file mode 100644 index 000000000..1a5bad5a2 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/delete-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo delete-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/delete-backup.md b/examples/2.4.x/console-cli/examples/mongo/delete-backup.md new file mode 100644 index 000000000..b1b0b54f9 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/delete-backup.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo delete-backup \ + --database-id '' \ + --backup-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/delete-branch.md b/examples/2.4.x/console-cli/examples/mongo/delete-branch.md new file mode 100644 index 000000000..c858a1f13 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/delete-branch.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo delete-branch \ + --database-id '' \ + --branch-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/delete.md b/examples/2.4.x/console-cli/examples/mongo/delete.md new file mode 100644 index 000000000..ac90a37d4 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/delete.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo delete \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/get-backup-policy.md b/examples/2.4.x/console-cli/examples/mongo/get-backup-policy.md new file mode 100644 index 000000000..6dfc6bde1 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/get-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo get-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/get-backup.md b/examples/2.4.x/console-cli/examples/mongo/get-backup.md new file mode 100644 index 000000000..14b38de4f --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/get-backup.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo get-backup \ + --database-id '' \ + --backup-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/get-pitr.md b/examples/2.4.x/console-cli/examples/mongo/get-pitr.md new file mode 100644 index 000000000..a0882c9fc --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/get-pitr.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo get-pitr \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/get-replicas.md b/examples/2.4.x/console-cli/examples/mongo/get-replicas.md new file mode 100644 index 000000000..fcb04453b --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/get-replicas.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo get-replicas \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/get-restoration.md b/examples/2.4.x/console-cli/examples/mongo/get-restoration.md new file mode 100644 index 000000000..fbfbaaef0 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/get-restoration.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo get-restoration \ + --database-id '' \ + --restoration-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/get-status.md b/examples/2.4.x/console-cli/examples/mongo/get-status.md new file mode 100644 index 000000000..f5ec37e94 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/get-status.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo get-status \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/get.md b/examples/2.4.x/console-cli/examples/mongo/get.md new file mode 100644 index 000000000..0b7436d55 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/get.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo get \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/list-backup-policies.md b/examples/2.4.x/console-cli/examples/mongo/list-backup-policies.md new file mode 100644 index 000000000..e551a132c --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/list-backup-policies.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo list-backup-policies \ + --database-id '' \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/list-backups.md b/examples/2.4.x/console-cli/examples/mongo/list-backups.md new file mode 100644 index 000000000..38f4c98ae --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/list-backups.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo list-backups \ + --database-id '' \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/list-branches.md b/examples/2.4.x/console-cli/examples/mongo/list-branches.md new file mode 100644 index 000000000..99b90fbf5 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/list-branches.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo list-branches \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/list-operations.md b/examples/2.4.x/console-cli/examples/mongo/list-operations.md new file mode 100644 index 000000000..76b9c2467 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/list-operations.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo list-operations \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/list-restorations.md b/examples/2.4.x/console-cli/examples/mongo/list-restorations.md new file mode 100644 index 000000000..86855b693 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/list-restorations.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo list-restorations \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/list-specifications.md b/examples/2.4.x/console-cli/examples/mongo/list-specifications.md new file mode 100644 index 000000000..03890519f --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/list-specifications.md @@ -0,0 +1,3 @@ +```bash +appwrite mongo list-specifications +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/list.md b/examples/2.4.x/console-cli/examples/mongo/list.md new file mode 100644 index 000000000..992eb52db --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/list.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo list \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/update-backup-policy.md b/examples/2.4.x/console-cli/examples/mongo/update-backup-policy.md new file mode 100644 index 000000000..035ca92c7 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/update-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite mongo update-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/update-backup-storage.md b/examples/2.4.x/console-cli/examples/mongo/update-backup-storage.md new file mode 100644 index 000000000..fa969592c --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/update-backup-storage.md @@ -0,0 +1,8 @@ +```bash +appwrite mongo update-backup-storage \ + --database-id '' \ + --provider s3 \ + --bucket '' \ + --access-key '' \ + --secret-key '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/update-credentials.md b/examples/2.4.x/console-cli/examples/mongo/update-credentials.md new file mode 100644 index 000000000..836cfd910 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/update-credentials.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo update-credentials \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/update-maintenance.md b/examples/2.4.x/console-cli/examples/mongo/update-maintenance.md new file mode 100644 index 000000000..be8236eff --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/update-maintenance.md @@ -0,0 +1,6 @@ +```bash +appwrite mongo update-maintenance \ + --database-id '' \ + --day sun \ + --hour-utc 0 +``` diff --git a/examples/2.4.x/console-cli/examples/mongo/update.md b/examples/2.4.x/console-cli/examples/mongo/update.md new file mode 100644 index 000000000..ebb86deaf --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mongo/update.md @@ -0,0 +1,4 @@ +```bash +appwrite mongo update \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create-backup-policy.md b/examples/2.4.x/console-cli/examples/mysql/create-backup-policy.md new file mode 100644 index 000000000..a687ce1c6 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create-backup-policy.md @@ -0,0 +1,8 @@ +```bash +appwrite mysql create-backup-policy \ + --database-id '' \ + --policy-id '' \ + --name '' \ + --schedule '' \ + --retention 1 +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create-backup.md b/examples/2.4.x/console-cli/examples/mysql/create-backup.md new file mode 100644 index 000000000..646bca374 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create-backup.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql create-backup \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create-branch.md b/examples/2.4.x/console-cli/examples/mysql/create-branch.md new file mode 100644 index 000000000..f616dc7eb --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create-branch.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql create-branch \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create-execution.md b/examples/2.4.x/console-cli/examples/mysql/create-execution.md new file mode 100644 index 000000000..54a023544 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create-execution.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql create-execution \ + --database-id '' \ + --sql '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create-failover.md b/examples/2.4.x/console-cli/examples/mysql/create-failover.md new file mode 100644 index 000000000..ee5af1d5d --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create-failover.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql create-failover \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create-migration.md b/examples/2.4.x/console-cli/examples/mysql/create-migration.md new file mode 100644 index 000000000..22bdee9c1 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create-migration.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql create-migration \ + --database-id '' \ + --target-type shared +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create-restoration.md b/examples/2.4.x/console-cli/examples/mysql/create-restoration.md new file mode 100644 index 000000000..90abd0fa3 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create-restoration.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql create-restoration \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create-upgrade.md b/examples/2.4.x/console-cli/examples/mysql/create-upgrade.md new file mode 100644 index 000000000..81ad5e55c --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create-upgrade.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql create-upgrade \ + --database-id '' \ + --target-version '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/create.md b/examples/2.4.x/console-cli/examples/mysql/create.md new file mode 100644 index 000000000..bc9ef1a15 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/create.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql create \ + --database-id '' \ + --name '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/delete-backup-policy.md b/examples/2.4.x/console-cli/examples/mysql/delete-backup-policy.md new file mode 100644 index 000000000..e055c2bde --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/delete-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql delete-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/delete-backup.md b/examples/2.4.x/console-cli/examples/mysql/delete-backup.md new file mode 100644 index 000000000..70fc97087 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/delete-backup.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql delete-backup \ + --database-id '' \ + --backup-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/delete-branch.md b/examples/2.4.x/console-cli/examples/mysql/delete-branch.md new file mode 100644 index 000000000..880e12e60 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/delete-branch.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql delete-branch \ + --database-id '' \ + --branch-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/delete.md b/examples/2.4.x/console-cli/examples/mysql/delete.md new file mode 100644 index 000000000..3dff5c5c4 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/delete.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql delete \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/get-backup-policy.md b/examples/2.4.x/console-cli/examples/mysql/get-backup-policy.md new file mode 100644 index 000000000..9c93ced83 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/get-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql get-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/get-backup.md b/examples/2.4.x/console-cli/examples/mysql/get-backup.md new file mode 100644 index 000000000..b04c338dc --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/get-backup.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql get-backup \ + --database-id '' \ + --backup-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/get-pitr.md b/examples/2.4.x/console-cli/examples/mysql/get-pitr.md new file mode 100644 index 000000000..8cefdf701 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/get-pitr.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql get-pitr \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/get-pooler.md b/examples/2.4.x/console-cli/examples/mysql/get-pooler.md new file mode 100644 index 000000000..90e20539f --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/get-pooler.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql get-pooler \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/get-replicas.md b/examples/2.4.x/console-cli/examples/mysql/get-replicas.md new file mode 100644 index 000000000..8a374c0bd --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/get-replicas.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql get-replicas \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/get-restoration.md b/examples/2.4.x/console-cli/examples/mysql/get-restoration.md new file mode 100644 index 000000000..088c6db3f --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/get-restoration.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql get-restoration \ + --database-id '' \ + --restoration-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/get-status.md b/examples/2.4.x/console-cli/examples/mysql/get-status.md new file mode 100644 index 000000000..c9463f69a --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/get-status.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql get-status \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/get.md b/examples/2.4.x/console-cli/examples/mysql/get.md new file mode 100644 index 000000000..fa36fda6f --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/get.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql get \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/list-backup-policies.md b/examples/2.4.x/console-cli/examples/mysql/list-backup-policies.md new file mode 100644 index 000000000..cbc158115 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/list-backup-policies.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql list-backup-policies \ + --database-id '' \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/list-backups.md b/examples/2.4.x/console-cli/examples/mysql/list-backups.md new file mode 100644 index 000000000..bcf51dc3d --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/list-backups.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql list-backups \ + --database-id '' \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/list-branches.md b/examples/2.4.x/console-cli/examples/mysql/list-branches.md new file mode 100644 index 000000000..24940a6bf --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/list-branches.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql list-branches \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/list-operations.md b/examples/2.4.x/console-cli/examples/mysql/list-operations.md new file mode 100644 index 000000000..48e4b51dd --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/list-operations.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql list-operations \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/list-restorations.md b/examples/2.4.x/console-cli/examples/mysql/list-restorations.md new file mode 100644 index 000000000..c6168c561 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/list-restorations.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql list-restorations \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/list-specifications.md b/examples/2.4.x/console-cli/examples/mysql/list-specifications.md new file mode 100644 index 000000000..bbfc9874f --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/list-specifications.md @@ -0,0 +1,3 @@ +```bash +appwrite mysql list-specifications +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/list.md b/examples/2.4.x/console-cli/examples/mysql/list.md new file mode 100644 index 000000000..8c6aa79f8 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/list.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql list \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/update-backup-policy.md b/examples/2.4.x/console-cli/examples/mysql/update-backup-policy.md new file mode 100644 index 000000000..8e86406d2 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/update-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite mysql update-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/update-backup-storage.md b/examples/2.4.x/console-cli/examples/mysql/update-backup-storage.md new file mode 100644 index 000000000..e91954991 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/update-backup-storage.md @@ -0,0 +1,8 @@ +```bash +appwrite mysql update-backup-storage \ + --database-id '' \ + --provider s3 \ + --bucket '' \ + --access-key '' \ + --secret-key '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/update-credentials.md b/examples/2.4.x/console-cli/examples/mysql/update-credentials.md new file mode 100644 index 000000000..f86d34a7c --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/update-credentials.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql update-credentials \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/update-maintenance.md b/examples/2.4.x/console-cli/examples/mysql/update-maintenance.md new file mode 100644 index 000000000..8ee6a85bf --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/update-maintenance.md @@ -0,0 +1,6 @@ +```bash +appwrite mysql update-maintenance \ + --database-id '' \ + --day sun \ + --hour-utc 0 +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/update-pooler.md b/examples/2.4.x/console-cli/examples/mysql/update-pooler.md new file mode 100644 index 000000000..eaa13fa9e --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/update-pooler.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql update-pooler \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/mysql/update.md b/examples/2.4.x/console-cli/examples/mysql/update.md new file mode 100644 index 000000000..d2bb8c172 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/mysql/update.md @@ -0,0 +1,4 @@ +```bash +appwrite mysql update \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-backup-policy.md b/examples/2.4.x/console-cli/examples/postgresql/create-backup-policy.md new file mode 100644 index 000000000..7717a15c1 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-backup-policy.md @@ -0,0 +1,8 @@ +```bash +appwrite postgresql create-backup-policy \ + --database-id '' \ + --policy-id '' \ + --name '' \ + --schedule '' \ + --retention 1 +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-backup.md b/examples/2.4.x/console-cli/examples/postgresql/create-backup.md new file mode 100644 index 000000000..f526681a9 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-backup.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql create-backup \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-branch.md b/examples/2.4.x/console-cli/examples/postgresql/create-branch.md new file mode 100644 index 000000000..9bc9a27b2 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-branch.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql create-branch \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-execution.md b/examples/2.4.x/console-cli/examples/postgresql/create-execution.md new file mode 100644 index 000000000..43b2038a9 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-execution.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql create-execution \ + --database-id '' \ + --sql '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-extension.md b/examples/2.4.x/console-cli/examples/postgresql/create-extension.md new file mode 100644 index 000000000..9ec850c86 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-extension.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql create-extension \ + --database-id '' \ + --name '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-failover.md b/examples/2.4.x/console-cli/examples/postgresql/create-failover.md new file mode 100644 index 000000000..8b8464e08 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-failover.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql create-failover \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-migration.md b/examples/2.4.x/console-cli/examples/postgresql/create-migration.md new file mode 100644 index 000000000..c10fba3c2 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-migration.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql create-migration \ + --database-id '' \ + --target-type shared +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-restoration.md b/examples/2.4.x/console-cli/examples/postgresql/create-restoration.md new file mode 100644 index 000000000..30a128f98 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-restoration.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql create-restoration \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create-upgrade.md b/examples/2.4.x/console-cli/examples/postgresql/create-upgrade.md new file mode 100644 index 000000000..e260eb317 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create-upgrade.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql create-upgrade \ + --database-id '' \ + --target-version '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/create.md b/examples/2.4.x/console-cli/examples/postgresql/create.md new file mode 100644 index 000000000..df7f20b47 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/create.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql create \ + --database-id '' \ + --name '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/delete-backup-policy.md b/examples/2.4.x/console-cli/examples/postgresql/delete-backup-policy.md new file mode 100644 index 000000000..faf0b66de --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/delete-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql delete-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/delete-backup.md b/examples/2.4.x/console-cli/examples/postgresql/delete-backup.md new file mode 100644 index 000000000..824c61823 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/delete-backup.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql delete-backup \ + --database-id '' \ + --backup-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/delete-branch.md b/examples/2.4.x/console-cli/examples/postgresql/delete-branch.md new file mode 100644 index 000000000..4a033a9fc --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/delete-branch.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql delete-branch \ + --database-id '' \ + --branch-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/delete-extension.md b/examples/2.4.x/console-cli/examples/postgresql/delete-extension.md new file mode 100644 index 000000000..fc70be104 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/delete-extension.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql delete-extension \ + --database-id '' \ + --extension-name '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/delete.md b/examples/2.4.x/console-cli/examples/postgresql/delete.md new file mode 100644 index 000000000..8a192cdbe --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/delete.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql delete \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/get-backup-policy.md b/examples/2.4.x/console-cli/examples/postgresql/get-backup-policy.md new file mode 100644 index 000000000..3c43db9ed --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/get-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql get-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/get-backup.md b/examples/2.4.x/console-cli/examples/postgresql/get-backup.md new file mode 100644 index 000000000..74040d0f4 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/get-backup.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql get-backup \ + --database-id '' \ + --backup-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/get-pitr.md b/examples/2.4.x/console-cli/examples/postgresql/get-pitr.md new file mode 100644 index 000000000..a633fc04b --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/get-pitr.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql get-pitr \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/get-pooler.md b/examples/2.4.x/console-cli/examples/postgresql/get-pooler.md new file mode 100644 index 000000000..922f79876 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/get-pooler.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql get-pooler \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/get-replicas.md b/examples/2.4.x/console-cli/examples/postgresql/get-replicas.md new file mode 100644 index 000000000..e8935599a --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/get-replicas.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql get-replicas \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/get-restoration.md b/examples/2.4.x/console-cli/examples/postgresql/get-restoration.md new file mode 100644 index 000000000..26b115873 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/get-restoration.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql get-restoration \ + --database-id '' \ + --restoration-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/get-status.md b/examples/2.4.x/console-cli/examples/postgresql/get-status.md new file mode 100644 index 000000000..489dc9e39 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/get-status.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql get-status \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/get.md b/examples/2.4.x/console-cli/examples/postgresql/get.md new file mode 100644 index 000000000..0d5d78b5c --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/get.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql get \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/list-backup-policies.md b/examples/2.4.x/console-cli/examples/postgresql/list-backup-policies.md new file mode 100644 index 000000000..a05808181 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/list-backup-policies.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql list-backup-policies \ + --database-id '' \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/list-backups.md b/examples/2.4.x/console-cli/examples/postgresql/list-backups.md new file mode 100644 index 000000000..4939a4a50 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/list-backups.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql list-backups \ + --database-id '' \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/list-branches.md b/examples/2.4.x/console-cli/examples/postgresql/list-branches.md new file mode 100644 index 000000000..569673263 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/list-branches.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql list-branches \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/list-extensions.md b/examples/2.4.x/console-cli/examples/postgresql/list-extensions.md new file mode 100644 index 000000000..f14d65568 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/list-extensions.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql list-extensions \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/list-operations.md b/examples/2.4.x/console-cli/examples/postgresql/list-operations.md new file mode 100644 index 000000000..d812b3c3e --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/list-operations.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql list-operations \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/list-restorations.md b/examples/2.4.x/console-cli/examples/postgresql/list-restorations.md new file mode 100644 index 000000000..58d43f119 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/list-restorations.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql list-restorations \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/list-specifications.md b/examples/2.4.x/console-cli/examples/postgresql/list-specifications.md new file mode 100644 index 000000000..0053bc639 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/list-specifications.md @@ -0,0 +1,3 @@ +```bash +appwrite postgresql list-specifications +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/list.md b/examples/2.4.x/console-cli/examples/postgresql/list.md new file mode 100644 index 000000000..0f9d2b409 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/list.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql list \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/update-backup-policy.md b/examples/2.4.x/console-cli/examples/postgresql/update-backup-policy.md new file mode 100644 index 000000000..ba909c108 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/update-backup-policy.md @@ -0,0 +1,5 @@ +```bash +appwrite postgresql update-backup-policy \ + --database-id '' \ + --policy-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/update-backup-storage.md b/examples/2.4.x/console-cli/examples/postgresql/update-backup-storage.md new file mode 100644 index 000000000..6504d7866 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/update-backup-storage.md @@ -0,0 +1,8 @@ +```bash +appwrite postgresql update-backup-storage \ + --database-id '' \ + --provider s3 \ + --bucket '' \ + --access-key '' \ + --secret-key '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/update-credentials.md b/examples/2.4.x/console-cli/examples/postgresql/update-credentials.md new file mode 100644 index 000000000..4c03f9c6b --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/update-credentials.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql update-credentials \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/update-maintenance.md b/examples/2.4.x/console-cli/examples/postgresql/update-maintenance.md new file mode 100644 index 000000000..a146b7f9c --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/update-maintenance.md @@ -0,0 +1,6 @@ +```bash +appwrite postgresql update-maintenance \ + --database-id '' \ + --day sun \ + --hour-utc 0 +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/update-pooler.md b/examples/2.4.x/console-cli/examples/postgresql/update-pooler.md new file mode 100644 index 000000000..632119a1a --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/update-pooler.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql update-pooler \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/postgresql/update.md b/examples/2.4.x/console-cli/examples/postgresql/update.md new file mode 100644 index 000000000..4f9d087af --- /dev/null +++ b/examples/2.4.x/console-cli/examples/postgresql/update.md @@ -0,0 +1,4 @@ +```bash +appwrite postgresql update \ + --database-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/presences/update.md b/examples/2.4.x/console-cli/examples/presences/update.md new file mode 100644 index 000000000..c1ed826e2 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/presences/update.md @@ -0,0 +1,5 @@ +```bash +appwrite presences update \ + --presence-id '' \ + --user-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/presences/upsert.md b/examples/2.4.x/console-cli/examples/presences/upsert.md new file mode 100644 index 000000000..d11937b5f --- /dev/null +++ b/examples/2.4.x/console-cli/examples/presences/upsert.md @@ -0,0 +1,6 @@ +```bash +appwrite presences upsert \ + --presence-id '' \ + --user-id '' \ + --status '' +``` diff --git a/examples/2.4.x/console-cli/examples/waf/create-bypass-rule.md b/examples/2.4.x/console-cli/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..e22b6188f --- /dev/null +++ b/examples/2.4.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/2.4.x/console-cli/examples/waf/create-challenge-rule.md b/examples/2.4.x/console-cli/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..b32b48da3 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/waf/create-challenge-rule.md @@ -0,0 +1,6 @@ +```bash +appwrite waf create-challenge-rule \ + --rule-id '' \ + --resource-type api \ + --name '' +``` diff --git a/examples/2.4.x/console-cli/examples/waf/create-deny-rule.md b/examples/2.4.x/console-cli/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..e7fb2c157 --- /dev/null +++ b/examples/2.4.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/2.4.x/console-cli/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/console-cli/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..33df617b3 --- /dev/null +++ b/examples/2.4.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/2.4.x/console-cli/examples/waf/create-redirect-rule.md b/examples/2.4.x/console-cli/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..c2a24931e --- /dev/null +++ b/examples/2.4.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/2.4.x/console-cli/examples/waf/delete-rule.md b/examples/2.4.x/console-cli/examples/waf/delete-rule.md new file mode 100644 index 000000000..706d4fce0 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/waf/delete-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf delete-rule \ + --rule-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/waf/get-rule.md b/examples/2.4.x/console-cli/examples/waf/get-rule.md new file mode 100644 index 000000000..b435d6acd --- /dev/null +++ b/examples/2.4.x/console-cli/examples/waf/get-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf get-rule \ + --rule-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/waf/list-rules.md b/examples/2.4.x/console-cli/examples/waf/list-rules.md new file mode 100644 index 000000000..1144aa178 --- /dev/null +++ b/examples/2.4.x/console-cli/examples/waf/list-rules.md @@ -0,0 +1,4 @@ +```bash +appwrite waf list-rules \ + --limit 25 +``` diff --git a/examples/2.4.x/console-cli/examples/waf/update-bypass-rule.md b/examples/2.4.x/console-cli/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..e94212088 --- /dev/null +++ b/examples/2.4.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/2.4.x/console-cli/examples/waf/update-challenge-rule.md b/examples/2.4.x/console-cli/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..dac640cbd --- /dev/null +++ b/examples/2.4.x/console-cli/examples/waf/update-challenge-rule.md @@ -0,0 +1,4 @@ +```bash +appwrite waf update-challenge-rule \ + --rule-id '' +``` diff --git a/examples/2.4.x/console-cli/examples/waf/update-deny-rule.md b/examples/2.4.x/console-cli/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..17cd92015 --- /dev/null +++ b/examples/2.4.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/2.4.x/console-cli/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/console-cli/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..b85cd55ea --- /dev/null +++ b/examples/2.4.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/2.4.x/console-cli/examples/waf/update-redirect-rule.md b/examples/2.4.x/console-cli/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..5b63098d0 --- /dev/null +++ b/examples/2.4.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/2.4.x/console-python/examples/oauth2/authorize-post.md b/examples/2.4.x/console-python/examples/oauth2/authorize-post.md index 747a672e4..c5c76eb80 100644 --- a/examples/2.4.x/console-python/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/console-python/examples/oauth2/authorize-post.md @@ -21,7 +21,7 @@ result: Oauth2Authorize = oauth2.authorize_post( prompt = '', # optional max_age = 0, # optional authorization_details = '', # optional - resource = '', # optional + resource = [], # optional audience = '', # optional request_uri = '' # optional ) diff --git a/examples/2.4.x/console-python/examples/oauth2/authorize.md b/examples/2.4.x/console-python/examples/oauth2/authorize.md index b226d424b..614bccee0 100644 --- a/examples/2.4.x/console-python/examples/oauth2/authorize.md +++ b/examples/2.4.x/console-python/examples/oauth2/authorize.md @@ -21,7 +21,7 @@ result: Oauth2Authorize = oauth2.authorize( prompt = '', # optional max_age = 0, # optional authorization_details = '', # optional - resource = '', # optional + resource = [], # optional audience = '', # optional request_uri = '' # optional ) diff --git a/examples/2.4.x/console-python/examples/oauth2/create-device-authorization.md b/examples/2.4.x/console-python/examples/oauth2/create-device-authorization.md index 7214b0968..7ae5b3d35 100644 --- a/examples/2.4.x/console-python/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/console-python/examples/oauth2/create-device-authorization.md @@ -13,7 +13,7 @@ result: Oauth2DeviceAuthorization = oauth2.create_device_authorization( client_id = '', # optional scope = '', # optional authorization_details = '', # optional - resource = '', # optional + resource = [], # optional audience = '' # optional ) diff --git a/examples/2.4.x/console-python/examples/oauth2/create-par.md b/examples/2.4.x/console-python/examples/oauth2/create-par.md index 8151c4838..3e7484fd3 100644 --- a/examples/2.4.x/console-python/examples/oauth2/create-par.md +++ b/examples/2.4.x/console-python/examples/oauth2/create-par.md @@ -21,7 +21,7 @@ result: Oauth2PAR = oauth2.create_par( prompt = '', # optional max_age = 0, # optional authorization_details = '', # optional - resource = '', # optional + resource = [], # optional audience = '' # optional ) diff --git a/examples/2.4.x/console-python/examples/oauth2/create-token.md b/examples/2.4.x/console-python/examples/oauth2/create-token.md index e8ca7cb89..abbbf8e79 100644 --- a/examples/2.4.x/console-python/examples/oauth2/create-token.md +++ b/examples/2.4.x/console-python/examples/oauth2/create-token.md @@ -18,7 +18,7 @@ result: Oauth2Token = oauth2.create_token( client_secret = '', # optional code_verifier = '', # optional redirect_uri = 'https://example.com', # optional - resource = '', # optional + resource = [], # optional audience = '' # optional ) diff --git a/examples/2.4.x/console-python/examples/waf/create-bypass-rule.md b/examples/2.4.x/console-python/examples/waf/create-bypass-rule.md index 6161f0a50..26acf16eb 100644 --- a/examples/2.4.x/console-python/examples/waf/create-bypass-rule.md +++ b/examples/2.4.x/console-python/examples/waf/create-bypass-rule.md @@ -17,7 +17,7 @@ result: WafRuleBypass = waf.create_bypass_rule( description = '', # optional priority = -100000, # optional enabled = False, # optional - conditions = '' # optional + conditions = [] # optional ) print(result.model_dump()) diff --git a/examples/2.4.x/console-python/examples/waf/create-challenge-rule.md b/examples/2.4.x/console-python/examples/waf/create-challenge-rule.md index 8a64b0355..df45a5d47 100644 --- a/examples/2.4.x/console-python/examples/waf/create-challenge-rule.md +++ b/examples/2.4.x/console-python/examples/waf/create-challenge-rule.md @@ -18,7 +18,7 @@ result: WafRuleChallenge = waf.create_challenge_rule( challenge_type = 'compute', # optional priority = -100000, # optional enabled = False, # optional - conditions = '', # optional + conditions = [], # optional difficulty = 1, # optional ttl = 900 # optional ) diff --git a/examples/2.4.x/console-python/examples/waf/create-deny-rule.md b/examples/2.4.x/console-python/examples/waf/create-deny-rule.md index cb0bdefc3..8dba95eb0 100644 --- a/examples/2.4.x/console-python/examples/waf/create-deny-rule.md +++ b/examples/2.4.x/console-python/examples/waf/create-deny-rule.md @@ -17,7 +17,7 @@ result: WafRuleDeny = waf.create_deny_rule( description = '', # optional priority = -100000, # optional enabled = False, # optional - conditions = '' # optional + conditions = [] # optional ) print(result.model_dump()) diff --git a/examples/2.4.x/console-python/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/console-python/examples/waf/create-rate-limit-rule.md index 4612f21c8..a30f5f109 100644 --- a/examples/2.4.x/console-python/examples/waf/create-rate-limit-rule.md +++ b/examples/2.4.x/console-python/examples/waf/create-rate-limit-rule.md @@ -22,7 +22,7 @@ result: WafRuleRateLimit = waf.create_rate_limit_rule( max_bucket_size = 1, # optional priority = -100000, # optional enabled = False, # optional - conditions = '' # optional + conditions = [] # optional ) print(result.model_dump()) diff --git a/examples/2.4.x/console-python/examples/waf/create-redirect-rule.md b/examples/2.4.x/console-python/examples/waf/create-redirect-rule.md index d19cbc0ab..d5ab9d0c0 100644 --- a/examples/2.4.x/console-python/examples/waf/create-redirect-rule.md +++ b/examples/2.4.x/console-python/examples/waf/create-redirect-rule.md @@ -19,7 +19,7 @@ result: WafRuleRedirect = waf.create_redirect_rule( description = '', # optional priority = -100000, # optional enabled = False, # optional - conditions = '' # optional + conditions = [] # optional ) print(result.model_dump()) diff --git a/examples/2.4.x/console-python/examples/waf/get-rule.md b/examples/2.4.x/console-python/examples/waf/get-rule.md index 9964570fc..550262151 100644 --- a/examples/2.4.x/console-python/examples/waf/get-rule.md +++ b/examples/2.4.x/console-python/examples/waf/get-rule.md @@ -1,7 +1,12 @@ ```python from appwrite_console.client import Client from appwrite_console.services.waf import Waf -from appwrite_console.models import WafRule +from appwrite_console.models import WafRuleBypass +from appwrite_console.models import WafRuleDeny +from appwrite_console.models import WafRuleChallenge +from appwrite_console.models import WafRuleRateLimit +from appwrite_console.models import WafRuleRedirect +from typing import Union client = Client() client.set_endpoint('https://.cloud.appwrite.io/v1') # Your API Endpoint @@ -9,7 +14,7 @@ client.set_project('') # Your project ID waf = Waf(client) -result: WafRule = waf.get_rule( +result: Union[WafRuleBypass, WafRuleDeny, WafRuleChallenge, WafRuleRateLimit, WafRuleRedirect] = waf.get_rule( rule_id = '' ) diff --git a/examples/2.4.x/console-python/examples/waf/update-bypass-rule.md b/examples/2.4.x/console-python/examples/waf/update-bypass-rule.md index de31d0629..b48ac7ea9 100644 --- a/examples/2.4.x/console-python/examples/waf/update-bypass-rule.md +++ b/examples/2.4.x/console-python/examples/waf/update-bypass-rule.md @@ -17,7 +17,7 @@ result: WafRuleBypass = waf.update_bypass_rule( description = '', # optional priority = -100000, # optional enabled = False, # optional - conditions = '' # optional + conditions = [] # optional ) print(result.model_dump()) diff --git a/examples/2.4.x/console-python/examples/waf/update-challenge-rule.md b/examples/2.4.x/console-python/examples/waf/update-challenge-rule.md index 727b111d1..de6dd1ad1 100644 --- a/examples/2.4.x/console-python/examples/waf/update-challenge-rule.md +++ b/examples/2.4.x/console-python/examples/waf/update-challenge-rule.md @@ -18,7 +18,7 @@ result: WafRuleChallenge = waf.update_challenge_rule( challenge_type = 'compute', # optional priority = -100000, # optional enabled = False, # optional - conditions = '', # optional + conditions = [], # optional difficulty = 1, # optional ttl = 900 # optional ) diff --git a/examples/2.4.x/console-python/examples/waf/update-deny-rule.md b/examples/2.4.x/console-python/examples/waf/update-deny-rule.md index d880e8075..d58e4ea83 100644 --- a/examples/2.4.x/console-python/examples/waf/update-deny-rule.md +++ b/examples/2.4.x/console-python/examples/waf/update-deny-rule.md @@ -17,7 +17,7 @@ result: WafRuleDeny = waf.update_deny_rule( description = '', # optional priority = -100000, # optional enabled = False, # optional - conditions = '' # optional + conditions = [] # optional ) print(result.model_dump()) diff --git a/examples/2.4.x/console-python/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/console-python/examples/waf/update-rate-limit-rule.md index 34eb52c2a..543f7ce15 100644 --- a/examples/2.4.x/console-python/examples/waf/update-rate-limit-rule.md +++ b/examples/2.4.x/console-python/examples/waf/update-rate-limit-rule.md @@ -21,7 +21,7 @@ result: WafRuleRateLimit = waf.update_rate_limit_rule( max_bucket_size = 1, # optional priority = -100000, # optional enabled = False, # optional - conditions = '' # optional + conditions = [] # optional ) print(result.model_dump()) diff --git a/examples/2.4.x/console-python/examples/waf/update-redirect-rule.md b/examples/2.4.x/console-python/examples/waf/update-redirect-rule.md index 4bf230c92..eb4e0de3d 100644 --- a/examples/2.4.x/console-python/examples/waf/update-redirect-rule.md +++ b/examples/2.4.x/console-python/examples/waf/update-redirect-rule.md @@ -19,7 +19,7 @@ result: WafRuleRedirect = waf.update_redirect_rule( status_code = 300, # optional priority = -100000, # optional enabled = False, # optional - conditions = '' # optional + conditions = [] # optional ) print(result.model_dump()) diff --git a/examples/2.4.x/console-web/examples/oauth2/authorize-post.md b/examples/2.4.x/console-web/examples/oauth2/authorize-post.md index acb7116d5..551709b93 100644 --- a/examples/2.4.x/console-web/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/console-web/examples/oauth2/authorize-post.md @@ -19,7 +19,7 @@ const result = await oauth2.authorizePost({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional requestUri: '', // optional }); diff --git a/examples/2.4.x/console-web/examples/oauth2/authorize.md b/examples/2.4.x/console-web/examples/oauth2/authorize.md index 0a02731b0..87be841ab 100644 --- a/examples/2.4.x/console-web/examples/oauth2/authorize.md +++ b/examples/2.4.x/console-web/examples/oauth2/authorize.md @@ -19,7 +19,7 @@ const result = await oauth2.authorize({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional requestUri: '', // optional }); diff --git a/examples/2.4.x/console-web/examples/oauth2/create-device-authorization.md b/examples/2.4.x/console-web/examples/oauth2/create-device-authorization.md index 3203b84d9..7ab83a56b 100644 --- a/examples/2.4.x/console-web/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/console-web/examples/oauth2/create-device-authorization.md @@ -11,7 +11,7 @@ const result = await oauth2.createDeviceAuthorization({ clientId: '', // optional scope: '', // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/console-web/examples/oauth2/create-par.md b/examples/2.4.x/console-web/examples/oauth2/create-par.md index 3c5032872..3e5f04155 100644 --- a/examples/2.4.x/console-web/examples/oauth2/create-par.md +++ b/examples/2.4.x/console-web/examples/oauth2/create-par.md @@ -19,7 +19,7 @@ const result = await oauth2.createPAR({ prompt: '', // optional maxAge: 0, // optional authorizationDetails: '', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/console-web/examples/oauth2/create-token.md b/examples/2.4.x/console-web/examples/oauth2/create-token.md index 900352e99..512346b4c 100644 --- a/examples/2.4.x/console-web/examples/oauth2/create-token.md +++ b/examples/2.4.x/console-web/examples/oauth2/create-token.md @@ -16,7 +16,7 @@ const result = await oauth2.createToken({ clientSecret: '', // optional codeVerifier: '', // optional redirectUri: 'https://example.com', // optional - resource: '', // optional + resource: [], // optional audience: '', // optional }); diff --git a/examples/2.4.x/console-web/examples/waf/create-bypass-rule.md b/examples/2.4.x/console-web/examples/waf/create-bypass-rule.md index 9c494768e..d5db7c0fc 100644 --- a/examples/2.4.x/console-web/examples/waf/create-bypass-rule.md +++ b/examples/2.4.x/console-web/examples/waf/create-bypass-rule.md @@ -15,7 +15,7 @@ const result = await waf.createBypassRule({ description: '', // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional }); console.log(result); diff --git a/examples/2.4.x/console-web/examples/waf/create-challenge-rule.md b/examples/2.4.x/console-web/examples/waf/create-challenge-rule.md index 5b1689f8b..a93d6acc6 100644 --- a/examples/2.4.x/console-web/examples/waf/create-challenge-rule.md +++ b/examples/2.4.x/console-web/examples/waf/create-challenge-rule.md @@ -16,7 +16,7 @@ const result = await waf.createChallengeRule({ challengeType: 'compute', // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional difficulty: 1, // optional ttl: 900, // optional }); diff --git a/examples/2.4.x/console-web/examples/waf/create-deny-rule.md b/examples/2.4.x/console-web/examples/waf/create-deny-rule.md index 87bfdbec2..b6d9488c3 100644 --- a/examples/2.4.x/console-web/examples/waf/create-deny-rule.md +++ b/examples/2.4.x/console-web/examples/waf/create-deny-rule.md @@ -15,7 +15,7 @@ const result = await waf.createDenyRule({ description: '', // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional }); console.log(result); diff --git a/examples/2.4.x/console-web/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/console-web/examples/waf/create-rate-limit-rule.md index bb1d683fe..12cb9baa3 100644 --- a/examples/2.4.x/console-web/examples/waf/create-rate-limit-rule.md +++ b/examples/2.4.x/console-web/examples/waf/create-rate-limit-rule.md @@ -20,7 +20,7 @@ const result = await waf.createRateLimitRule({ maxBucketSize: 1, // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional }); console.log(result); diff --git a/examples/2.4.x/console-web/examples/waf/create-redirect-rule.md b/examples/2.4.x/console-web/examples/waf/create-redirect-rule.md index 37d9ed8fa..650e8b9f2 100644 --- a/examples/2.4.x/console-web/examples/waf/create-redirect-rule.md +++ b/examples/2.4.x/console-web/examples/waf/create-redirect-rule.md @@ -17,7 +17,7 @@ const result = await waf.createRedirectRule({ description: '', // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional }); console.log(result); diff --git a/examples/2.4.x/console-web/examples/waf/update-bypass-rule.md b/examples/2.4.x/console-web/examples/waf/update-bypass-rule.md index d0987aa21..a82f8190b 100644 --- a/examples/2.4.x/console-web/examples/waf/update-bypass-rule.md +++ b/examples/2.4.x/console-web/examples/waf/update-bypass-rule.md @@ -15,7 +15,7 @@ const result = await waf.updateBypassRule({ description: '', // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional }); console.log(result); diff --git a/examples/2.4.x/console-web/examples/waf/update-challenge-rule.md b/examples/2.4.x/console-web/examples/waf/update-challenge-rule.md index 210200fc9..d2d183360 100644 --- a/examples/2.4.x/console-web/examples/waf/update-challenge-rule.md +++ b/examples/2.4.x/console-web/examples/waf/update-challenge-rule.md @@ -16,7 +16,7 @@ const result = await waf.updateChallengeRule({ challengeType: 'compute', // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional difficulty: 1, // optional ttl: 900, // optional }); diff --git a/examples/2.4.x/console-web/examples/waf/update-deny-rule.md b/examples/2.4.x/console-web/examples/waf/update-deny-rule.md index a46d56805..608bb7c11 100644 --- a/examples/2.4.x/console-web/examples/waf/update-deny-rule.md +++ b/examples/2.4.x/console-web/examples/waf/update-deny-rule.md @@ -15,7 +15,7 @@ const result = await waf.updateDenyRule({ description: '', // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional }); console.log(result); diff --git a/examples/2.4.x/console-web/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/console-web/examples/waf/update-rate-limit-rule.md index 24dfd9347..1b30b99ec 100644 --- a/examples/2.4.x/console-web/examples/waf/update-rate-limit-rule.md +++ b/examples/2.4.x/console-web/examples/waf/update-rate-limit-rule.md @@ -19,7 +19,7 @@ const result = await waf.updateRateLimitRule({ maxBucketSize: 1, // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional }); console.log(result); diff --git a/examples/2.4.x/console-web/examples/waf/update-redirect-rule.md b/examples/2.4.x/console-web/examples/waf/update-redirect-rule.md index 00e5c3efa..05612edcf 100644 --- a/examples/2.4.x/console-web/examples/waf/update-redirect-rule.md +++ b/examples/2.4.x/console-web/examples/waf/update-redirect-rule.md @@ -17,7 +17,7 @@ const result = await waf.updateRedirectRule({ statusCode: 300, // optional priority: -100000, // optional enabled: false, // optional - conditions: '', // optional + conditions: [], // optional }); console.log(result); diff --git a/examples/2.4.x/server-dart/examples/account/create-anonymous-session.md b/examples/2.4.x/server-dart/examples/account/create-anonymous-session.md index 542c0d644..a130cb9b8 100644 --- a/examples/2.4.x/server-dart/examples/account/create-anonymous-session.md +++ b/examples/2.4.x/server-dart/examples/account/create-anonymous-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -Session result = await account.createAnonymousSession(); +models.Session result = await account.createAnonymousSession(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/create-email-password-session.md b/examples/2.4.x/server-dart/examples/account/create-email-password-session.md index feefb53c4..1e41ffc54 100644 --- a/examples/2.4.x/server-dart/examples/account/create-email-password-session.md +++ b/examples/2.4.x/server-dart/examples/account/create-email-password-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.createEmailPasswordSession( +models.Session result = await account.createEmailPasswordSession( email: 'email@example.com', password: 'password', duration: 60, // (optional) diff --git a/examples/2.4.x/server-dart/examples/account/create-email-token.md b/examples/2.4.x/server-dart/examples/account/create-email-token.md index dfcfc76c8..00b0de384 100644 --- a/examples/2.4.x/server-dart/examples/account/create-email-token.md +++ b/examples/2.4.x/server-dart/examples/account/create-email-token.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createEmailToken( +models.Token result = await account.createEmailToken( userId: '', email: 'email@example.com', phrase: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/account/create-email-verification-otp.md b/examples/2.4.x/server-dart/examples/account/create-email-verification-otp.md index a6ae8087a..0e50ccb93 100644 --- a/examples/2.4.x/server-dart/examples/account/create-email-verification-otp.md +++ b/examples/2.4.x/server-dart/examples/account/create-email-verification-otp.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createEmailVerificationOTP( +models.Token result = await account.createEmailVerificationOTP( phrase: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/create-email-verification.md b/examples/2.4.x/server-dart/examples/account/create-email-verification.md index 0db846c12..7da8d9aaf 100644 --- a/examples/2.4.x/server-dart/examples/account/create-email-verification.md +++ b/examples/2.4.x/server-dart/examples/account/create-email-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createEmailVerification( +models.Token result = await account.createEmailVerification( url: 'https://example.com', ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/create-id-token-session.md b/examples/2.4.x/server-dart/examples/account/create-id-token-session.md index e93714451..af36dbd82 100644 --- a/examples/2.4.x/server-dart/examples/account/create-id-token-session.md +++ b/examples/2.4.x/server-dart/examples/account/create-id-token-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.createIdTokenSession( +models.Session result = await account.createIdTokenSession( provider: enums.IdTokenProvider.apple, idToken: '', nonce: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/account/create-magic-url-token.md b/examples/2.4.x/server-dart/examples/account/create-magic-url-token.md index 4b4f703e8..53864ce96 100644 --- a/examples/2.4.x/server-dart/examples/account/create-magic-url-token.md +++ b/examples/2.4.x/server-dart/examples/account/create-magic-url-token.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createMagicURLToken( +models.Token result = await account.createMagicURLToken( userId: '', email: 'email@example.com', url: 'https://example.com', // (optional) diff --git a/examples/2.4.x/server-dart/examples/account/create-mfa-authenticator.md b/examples/2.4.x/server-dart/examples/account/create-mfa-authenticator.md index 98a10171c..14b7f8a01 100644 --- a/examples/2.4.x/server-dart/examples/account/create-mfa-authenticator.md +++ b/examples/2.4.x/server-dart/examples/account/create-mfa-authenticator.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Account account = Account(client); -MfaType result = await account.createMFAAuthenticator( +models.MfaType result = await account.createMFAAuthenticator( type: enums.AuthenticatorType.totp, ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/create-mfa-challenge.md b/examples/2.4.x/server-dart/examples/account/create-mfa-challenge.md index 36d2f8981..8b014b831 100644 --- a/examples/2.4.x/server-dart/examples/account/create-mfa-challenge.md +++ b/examples/2.4.x/server-dart/examples/account/create-mfa-challenge.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Account account = Account(client); -MfaChallenge result = await account.createMFAChallenge( +models.MfaChallenge result = await account.createMFAChallenge( factor: enums.AuthenticationFactor.email, ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/create-mfa-recovery-codes.md b/examples/2.4.x/server-dart/examples/account/create-mfa-recovery-codes.md index 1fc2ec3b1..ba8249f03 100644 --- a/examples/2.4.x/server-dart/examples/account/create-mfa-recovery-codes.md +++ b/examples/2.4.x/server-dart/examples/account/create-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -MfaRecoveryCodes result = await account.createMFARecoveryCodes(); +models.MfaRecoveryCodes result = await account.createMFARecoveryCodes(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/create-phone-token.md b/examples/2.4.x/server-dart/examples/account/create-phone-token.md index 86a2ed36b..d5e615c7d 100644 --- a/examples/2.4.x/server-dart/examples/account/create-phone-token.md +++ b/examples/2.4.x/server-dart/examples/account/create-phone-token.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createPhoneToken( +models.Token result = await account.createPhoneToken( userId: '', phone: '+12065550100', ); diff --git a/examples/2.4.x/server-dart/examples/account/create-phone-verification.md b/examples/2.4.x/server-dart/examples/account/create-phone-verification.md index 400e47ec4..1163efff0 100644 --- a/examples/2.4.x/server-dart/examples/account/create-phone-verification.md +++ b/examples/2.4.x/server-dart/examples/account/create-phone-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -Token result = await account.createPhoneVerification(); +models.Token result = await account.createPhoneVerification(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/create-recovery-otp.md b/examples/2.4.x/server-dart/examples/account/create-recovery-otp.md index 9c264300e..29fdb1790 100644 --- a/examples/2.4.x/server-dart/examples/account/create-recovery-otp.md +++ b/examples/2.4.x/server-dart/examples/account/create-recovery-otp.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createRecoveryOTP( +models.Token result = await account.createRecoveryOTP( email: 'email@example.com', phrase: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/account/create-recovery.md b/examples/2.4.x/server-dart/examples/account/create-recovery.md index a71d691f5..4a4429e78 100644 --- a/examples/2.4.x/server-dart/examples/account/create-recovery.md +++ b/examples/2.4.x/server-dart/examples/account/create-recovery.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createRecovery( +models.Token result = await account.createRecovery( email: 'email@example.com', url: 'https://example.com', ); diff --git a/examples/2.4.x/server-dart/examples/account/create-session.md b/examples/2.4.x/server-dart/examples/account/create-session.md index 5e6f733d5..46fc34630 100644 --- a/examples/2.4.x/server-dart/examples/account/create-session.md +++ b/examples/2.4.x/server-dart/examples/account/create-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.createSession( +models.Session result = await account.createSession( userId: '', secret: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/create-verification.md b/examples/2.4.x/server-dart/examples/account/create-verification.md index c12b0dd2d..8b18d53a5 100644 --- a/examples/2.4.x/server-dart/examples/account/create-verification.md +++ b/examples/2.4.x/server-dart/examples/account/create-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.createVerification( +models.Token result = await account.createVerification( url: 'https://example.com', ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/create.md b/examples/2.4.x/server-dart/examples/account/create.md index 59b961161..ef40f68df 100644 --- a/examples/2.4.x/server-dart/examples/account/create.md +++ b/examples/2.4.x/server-dart/examples/account/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -User result = await account.create( +models.User result = await account.create( userId: '', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/account/get-consent-token.md b/examples/2.4.x/server-dart/examples/account/get-consent-token.md index d742f14e2..ea39c52e7 100644 --- a/examples/2.4.x/server-dart/examples/account/get-consent-token.md +++ b/examples/2.4.x/server-dart/examples/account/get-consent-token.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Oauth2ConsentToken result = await account.getConsentToken( +models.Oauth2ConsentToken result = await account.getConsentToken( consentId: '', tokenId: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/get-consent.md b/examples/2.4.x/server-dart/examples/account/get-consent.md index 91e7b7afe..67403fc86 100644 --- a/examples/2.4.x/server-dart/examples/account/get-consent.md +++ b/examples/2.4.x/server-dart/examples/account/get-consent.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Oauth2Consent result = await account.getConsent( +models.Oauth2Consent result = await account.getConsent( consentId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/get-mfa-recovery-codes.md b/examples/2.4.x/server-dart/examples/account/get-mfa-recovery-codes.md index 7b6c314ae..f250beb64 100644 --- a/examples/2.4.x/server-dart/examples/account/get-mfa-recovery-codes.md +++ b/examples/2.4.x/server-dart/examples/account/get-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -MfaRecoveryCodes result = await account.getMFARecoveryCodes(); +models.MfaRecoveryCodes result = await account.getMFARecoveryCodes(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/get-prefs.md b/examples/2.4.x/server-dart/examples/account/get-prefs.md index 667f2c040..511c6d305 100644 --- a/examples/2.4.x/server-dart/examples/account/get-prefs.md +++ b/examples/2.4.x/server-dart/examples/account/get-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -Preferences result = await account.getPrefs(); +models.Preferences result = await account.getPrefs(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/get-session.md b/examples/2.4.x/server-dart/examples/account/get-session.md index 36429bf74..0152b5e21 100644 --- a/examples/2.4.x/server-dart/examples/account/get-session.md +++ b/examples/2.4.x/server-dart/examples/account/get-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.getSession( +models.Session result = await account.getSession( sessionId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/get.md b/examples/2.4.x/server-dart/examples/account/get.md index fb5633f4b..b63275df7 100644 --- a/examples/2.4.x/server-dart/examples/account/get.md +++ b/examples/2.4.x/server-dart/examples/account/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -User result = await account.get(); +models.User result = await account.get(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/list-consent-tokens.md b/examples/2.4.x/server-dart/examples/account/list-consent-tokens.md index 579d03a5d..e91b8b40c 100644 --- a/examples/2.4.x/server-dart/examples/account/list-consent-tokens.md +++ b/examples/2.4.x/server-dart/examples/account/list-consent-tokens.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Oauth2ConsentTokenList result = await account.listConsentTokens( +models.Oauth2ConsentTokenList result = await account.listConsentTokens( consentId: '', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/account/list-consents.md b/examples/2.4.x/server-dart/examples/account/list-consents.md index f2a97b9d6..8f479c243 100644 --- a/examples/2.4.x/server-dart/examples/account/list-consents.md +++ b/examples/2.4.x/server-dart/examples/account/list-consents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Oauth2ConsentList result = await account.listConsents( +models.Oauth2ConsentList result = await account.listConsents( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/account/list-identities.md b/examples/2.4.x/server-dart/examples/account/list-identities.md index 9db450bbe..954d81135 100644 --- a/examples/2.4.x/server-dart/examples/account/list-identities.md +++ b/examples/2.4.x/server-dart/examples/account/list-identities.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -IdentityList result = await account.listIdentities( +models.IdentityList result = await account.listIdentities( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/account/list-mfa-factors.md b/examples/2.4.x/server-dart/examples/account/list-mfa-factors.md index 80f366802..5758ef378 100644 --- a/examples/2.4.x/server-dart/examples/account/list-mfa-factors.md +++ b/examples/2.4.x/server-dart/examples/account/list-mfa-factors.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -MfaFactors result = await account.listMFAFactors(); +models.MfaFactors result = await account.listMFAFactors(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/list-sessions.md b/examples/2.4.x/server-dart/examples/account/list-sessions.md index d582ecba6..db6233ee8 100644 --- a/examples/2.4.x/server-dart/examples/account/list-sessions.md +++ b/examples/2.4.x/server-dart/examples/account/list-sessions.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -SessionList result = await account.listSessions( +models.SessionList result = await account.listSessions( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/update-email-verification-otp.md b/examples/2.4.x/server-dart/examples/account/update-email-verification-otp.md index 080225ecc..47bf4ce43 100644 --- a/examples/2.4.x/server-dart/examples/account/update-email-verification-otp.md +++ b/examples/2.4.x/server-dart/examples/account/update-email-verification-otp.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateEmailVerificationOTP( +models.Token result = await account.updateEmailVerificationOTP( userId: '', secret: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-email-verification.md b/examples/2.4.x/server-dart/examples/account/update-email-verification.md index 4f41ac059..b4f89182b 100644 --- a/examples/2.4.x/server-dart/examples/account/update-email-verification.md +++ b/examples/2.4.x/server-dart/examples/account/update-email-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateEmailVerification( +models.Token result = await account.updateEmailVerification( userId: '', secret: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-email.md b/examples/2.4.x/server-dart/examples/account/update-email.md index b6c7c5924..ead64dab3 100644 --- a/examples/2.4.x/server-dart/examples/account/update-email.md +++ b/examples/2.4.x/server-dart/examples/account/update-email.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updateEmail( +models.User result = await account.updateEmail( email: 'email@example.com', password: 'password', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-magic-url-session.md b/examples/2.4.x/server-dart/examples/account/update-magic-url-session.md index bed558eab..d0d3be017 100644 --- a/examples/2.4.x/server-dart/examples/account/update-magic-url-session.md +++ b/examples/2.4.x/server-dart/examples/account/update-magic-url-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.updateMagicURLSession( +models.Session result = await account.updateMagicURLSession( userId: '', secret: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-mfa-authenticator.md b/examples/2.4.x/server-dart/examples/account/update-mfa-authenticator.md index d898bc2d3..3b72956a2 100644 --- a/examples/2.4.x/server-dart/examples/account/update-mfa-authenticator.md +++ b/examples/2.4.x/server-dart/examples/account/update-mfa-authenticator.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updateMFAAuthenticator( +models.User result = await account.updateMFAAuthenticator( type: enums.AuthenticatorType.totp, otp: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-mfa-challenge.md b/examples/2.4.x/server-dart/examples/account/update-mfa-challenge.md index 928a7ad8f..7044eaf4d 100644 --- a/examples/2.4.x/server-dart/examples/account/update-mfa-challenge.md +++ b/examples/2.4.x/server-dart/examples/account/update-mfa-challenge.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.updateMFAChallenge( +models.Session result = await account.updateMFAChallenge( challengeId: '', otp: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-mfa-recovery-codes.md b/examples/2.4.x/server-dart/examples/account/update-mfa-recovery-codes.md index b1abcd858..14e8d3e05 100644 --- a/examples/2.4.x/server-dart/examples/account/update-mfa-recovery-codes.md +++ b/examples/2.4.x/server-dart/examples/account/update-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -MfaRecoveryCodes result = await account.updateMFARecoveryCodes(); +models.MfaRecoveryCodes result = await account.updateMFARecoveryCodes(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/update-mfa.md b/examples/2.4.x/server-dart/examples/account/update-mfa.md index 744a5da5d..377b23148 100644 --- a/examples/2.4.x/server-dart/examples/account/update-mfa.md +++ b/examples/2.4.x/server-dart/examples/account/update-mfa.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updateMFA( +models.User result = await account.updateMFA( mfa: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/update-name.md b/examples/2.4.x/server-dart/examples/account/update-name.md index 402210076..9336ee541 100644 --- a/examples/2.4.x/server-dart/examples/account/update-name.md +++ b/examples/2.4.x/server-dart/examples/account/update-name.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updateName( +models.User result = await account.updateName( name: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/update-password.md b/examples/2.4.x/server-dart/examples/account/update-password.md index e903f1a1b..09fbd5b56 100644 --- a/examples/2.4.x/server-dart/examples/account/update-password.md +++ b/examples/2.4.x/server-dart/examples/account/update-password.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updatePassword( +models.User result = await account.updatePassword( password: 'password', oldPassword: 'password', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/account/update-phone-session.md b/examples/2.4.x/server-dart/examples/account/update-phone-session.md index d99d8b6d3..00f16d4b3 100644 --- a/examples/2.4.x/server-dart/examples/account/update-phone-session.md +++ b/examples/2.4.x/server-dart/examples/account/update-phone-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.updatePhoneSession( +models.Session result = await account.updatePhoneSession( userId: '', secret: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-phone-verification.md b/examples/2.4.x/server-dart/examples/account/update-phone-verification.md index 909b228ef..3ec49362d 100644 --- a/examples/2.4.x/server-dart/examples/account/update-phone-verification.md +++ b/examples/2.4.x/server-dart/examples/account/update-phone-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updatePhoneVerification( +models.Token result = await account.updatePhoneVerification( userId: '', secret: '', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-phone.md b/examples/2.4.x/server-dart/examples/account/update-phone.md index 7bf501690..7d9d55566 100644 --- a/examples/2.4.x/server-dart/examples/account/update-phone.md +++ b/examples/2.4.x/server-dart/examples/account/update-phone.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updatePhone( +models.User result = await account.updatePhone( phone: '+12065550100', password: 'password', ); diff --git a/examples/2.4.x/server-dart/examples/account/update-prefs.md b/examples/2.4.x/server-dart/examples/account/update-prefs.md index fe0076a27..be7ce1514 100644 --- a/examples/2.4.x/server-dart/examples/account/update-prefs.md +++ b/examples/2.4.x/server-dart/examples/account/update-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -User result = await account.updatePrefs( +models.User result = await account.updatePrefs( prefs: { "language": "en", "timezone": "UTC", diff --git a/examples/2.4.x/server-dart/examples/account/update-recovery-otp.md b/examples/2.4.x/server-dart/examples/account/update-recovery-otp.md index 33800ff25..b2e04970f 100644 --- a/examples/2.4.x/server-dart/examples/account/update-recovery-otp.md +++ b/examples/2.4.x/server-dart/examples/account/update-recovery-otp.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateRecoveryOTP( +models.Token result = await account.updateRecoveryOTP( userId: '', secret: '', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/account/update-recovery.md b/examples/2.4.x/server-dart/examples/account/update-recovery.md index fd69c45fa..1db8d61e9 100644 --- a/examples/2.4.x/server-dart/examples/account/update-recovery.md +++ b/examples/2.4.x/server-dart/examples/account/update-recovery.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateRecovery( +models.Token result = await account.updateRecovery( userId: '', secret: '', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/account/update-session.md b/examples/2.4.x/server-dart/examples/account/update-session.md index 12ad41b51..846d482c5 100644 --- a/examples/2.4.x/server-dart/examples/account/update-session.md +++ b/examples/2.4.x/server-dart/examples/account/update-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Session result = await account.updateSession( +models.Session result = await account.updateSession( sessionId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/account/update-status.md b/examples/2.4.x/server-dart/examples/account/update-status.md index 0841e5e25..5bda529aa 100644 --- a/examples/2.4.x/server-dart/examples/account/update-status.md +++ b/examples/2.4.x/server-dart/examples/account/update-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Account account = Account(client); -User result = await account.updateStatus(); +models.User result = await account.updateStatus(); ``` diff --git a/examples/2.4.x/server-dart/examples/account/update-verification.md b/examples/2.4.x/server-dart/examples/account/update-verification.md index e45bfd3cf..9a733c96c 100644 --- a/examples/2.4.x/server-dart/examples/account/update-verification.md +++ b/examples/2.4.x/server-dart/examples/account/update-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Account account = Account(client); -Token result = await account.updateVerification( +models.Token result = await account.updateVerification( userId: '', secret: '', ); diff --git a/examples/2.4.x/server-dart/examples/activities/get-event.md b/examples/2.4.x/server-dart/examples/activities/get-event.md index 6d90a0371..89682c83b 100644 --- a/examples/2.4.x/server-dart/examples/activities/get-event.md +++ b/examples/2.4.x/server-dart/examples/activities/get-event.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Activities activities = Activities(client); -ActivityEvent result = await activities.getEvent( +models.ActivityEvent result = await activities.getEvent( eventId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/activities/list-events.md b/examples/2.4.x/server-dart/examples/activities/list-events.md index 43a90dbef..6aa886230 100644 --- a/examples/2.4.x/server-dart/examples/activities/list-events.md +++ b/examples/2.4.x/server-dart/examples/activities/list-events.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Activities activities = Activities(client); -ActivityEventList result = await activities.listEvents( +models.ActivityEventList result = await activities.listEvents( queries: [], // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/advisor/get-insight.md b/examples/2.4.x/server-dart/examples/advisor/get-insight.md index 1920eb8e2..a4b9b549f 100644 --- a/examples/2.4.x/server-dart/examples/advisor/get-insight.md +++ b/examples/2.4.x/server-dart/examples/advisor/get-insight.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Advisor advisor = Advisor(client); -Insight result = await advisor.getInsight( +models.Insight result = await advisor.getInsight( reportId: '', insightId: '', ); diff --git a/examples/2.4.x/server-dart/examples/advisor/get-report.md b/examples/2.4.x/server-dart/examples/advisor/get-report.md index 4266ff05c..898f4f176 100644 --- a/examples/2.4.x/server-dart/examples/advisor/get-report.md +++ b/examples/2.4.x/server-dart/examples/advisor/get-report.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Advisor advisor = Advisor(client); -Report result = await advisor.getReport( +models.Report result = await advisor.getReport( reportId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/advisor/list-insights.md b/examples/2.4.x/server-dart/examples/advisor/list-insights.md index 16d874f77..612ec65f6 100644 --- a/examples/2.4.x/server-dart/examples/advisor/list-insights.md +++ b/examples/2.4.x/server-dart/examples/advisor/list-insights.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Advisor advisor = Advisor(client); -InsightList result = await advisor.listInsights( +models.InsightList result = await advisor.listInsights( reportId: '', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/advisor/list-reports.md b/examples/2.4.x/server-dart/examples/advisor/list-reports.md index 292c014b1..449f10405 100644 --- a/examples/2.4.x/server-dart/examples/advisor/list-reports.md +++ b/examples/2.4.x/server-dart/examples/advisor/list-reports.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Advisor advisor = Advisor(client); -ReportList result = await advisor.listReports( +models.ReportList result = await advisor.listReports( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/apps/create-installation-token.md b/examples/2.4.x/server-dart/examples/apps/create-installation-token.md index 3de5f329c..1c98cafcf 100644 --- a/examples/2.4.x/server-dart/examples/apps/create-installation-token.md +++ b/examples/2.4.x/server-dart/examples/apps/create-installation-token.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -Oauth2Token result = await apps.createInstallationToken( +models.Oauth2Token result = await apps.createInstallationToken( appId: '', installationId: '', ); diff --git a/examples/2.4.x/server-dart/examples/apps/create-key.md b/examples/2.4.x/server-dart/examples/apps/create-key.md index ad3bb955b..0aac44669 100644 --- a/examples/2.4.x/server-dart/examples/apps/create-key.md +++ b/examples/2.4.x/server-dart/examples/apps/create-key.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppKey result = await apps.createKey( +models.AppKey result = await apps.createKey( appId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/apps/create-secret.md b/examples/2.4.x/server-dart/examples/apps/create-secret.md index a3dae9237..183acb2b7 100644 --- a/examples/2.4.x/server-dart/examples/apps/create-secret.md +++ b/examples/2.4.x/server-dart/examples/apps/create-secret.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppSecretPlaintext result = await apps.createSecret( +models.AppSecretPlaintext result = await apps.createSecret( appId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/apps/create.md b/examples/2.4.x/server-dart/examples/apps/create.md index 6662a4f86..aa9e89ca3 100644 --- a/examples/2.4.x/server-dart/examples/apps/create.md +++ b/examples/2.4.x/server-dart/examples/apps/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.create( +models.App result = await apps.create( appId: '', name: '', redirectUris: [], diff --git a/examples/2.4.x/server-dart/examples/apps/get-installation.md b/examples/2.4.x/server-dart/examples/apps/get-installation.md index 7f9fbd5c1..8f6e2b2c2 100644 --- a/examples/2.4.x/server-dart/examples/apps/get-installation.md +++ b/examples/2.4.x/server-dart/examples/apps/get-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppInstallation result = await apps.getInstallation( +models.AppInstallation result = await apps.getInstallation( appId: '', installationId: '', ); diff --git a/examples/2.4.x/server-dart/examples/apps/get-key.md b/examples/2.4.x/server-dart/examples/apps/get-key.md index a5f27858d..de9c95812 100644 --- a/examples/2.4.x/server-dart/examples/apps/get-key.md +++ b/examples/2.4.x/server-dart/examples/apps/get-key.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppKey result = await apps.getKey( +models.AppKey result = await apps.getKey( appId: '', keyId: '', ); diff --git a/examples/2.4.x/server-dart/examples/apps/get-secret.md b/examples/2.4.x/server-dart/examples/apps/get-secret.md index 4cd85a01f..9db771e69 100644 --- a/examples/2.4.x/server-dart/examples/apps/get-secret.md +++ b/examples/2.4.x/server-dart/examples/apps/get-secret.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppSecret result = await apps.getSecret( +models.AppSecret result = await apps.getSecret( appId: '', secretId: '', ); diff --git a/examples/2.4.x/server-dart/examples/apps/get.md b/examples/2.4.x/server-dart/examples/apps/get.md index f5e79b85c..550ef3e1c 100644 --- a/examples/2.4.x/server-dart/examples/apps/get.md +++ b/examples/2.4.x/server-dart/examples/apps/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.get( +models.App result = await apps.get( appId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/apps/list-installation-scopes.md b/examples/2.4.x/server-dart/examples/apps/list-installation-scopes.md index c2d17afcf..1a635fe6d 100644 --- a/examples/2.4.x/server-dart/examples/apps/list-installation-scopes.md +++ b/examples/2.4.x/server-dart/examples/apps/list-installation-scopes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Apps apps = Apps(client); -AppScopeList result = await apps.listInstallationScopes(); +models.AppScopeList result = await apps.listInstallationScopes(); ``` diff --git a/examples/2.4.x/server-dart/examples/apps/list-installations.md b/examples/2.4.x/server-dart/examples/apps/list-installations.md index fd2cbdaaf..5aca02089 100644 --- a/examples/2.4.x/server-dart/examples/apps/list-installations.md +++ b/examples/2.4.x/server-dart/examples/apps/list-installations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppInstallationList result = await apps.listInstallations( +models.AppInstallationList result = await apps.listInstallations( appId: '', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/apps/list-keys.md b/examples/2.4.x/server-dart/examples/apps/list-keys.md index 18fda51a5..58b35ad11 100644 --- a/examples/2.4.x/server-dart/examples/apps/list-keys.md +++ b/examples/2.4.x/server-dart/examples/apps/list-keys.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppKeyList result = await apps.listKeys( +models.AppKeyList result = await apps.listKeys( appId: '', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/apps/list-o-auth-2-scopes.md b/examples/2.4.x/server-dart/examples/apps/list-o-auth-2-scopes.md index d50e8dccb..b6cddf023 100644 --- a/examples/2.4.x/server-dart/examples/apps/list-o-auth-2-scopes.md +++ b/examples/2.4.x/server-dart/examples/apps/list-o-auth-2-scopes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Apps apps = Apps(client); -AppScopeList result = await apps.listOAuth2Scopes(); +models.AppScopeList result = await apps.listOAuth2Scopes(); ``` diff --git a/examples/2.4.x/server-dart/examples/apps/list-secrets.md b/examples/2.4.x/server-dart/examples/apps/list-secrets.md index 47c5439c6..948cc1eaa 100644 --- a/examples/2.4.x/server-dart/examples/apps/list-secrets.md +++ b/examples/2.4.x/server-dart/examples/apps/list-secrets.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppSecretList result = await apps.listSecrets( +models.AppSecretList result = await apps.listSecrets( appId: '', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/apps/list.md b/examples/2.4.x/server-dart/examples/apps/list.md index 9915fa0c9..59dcff1a4 100644 --- a/examples/2.4.x/server-dart/examples/apps/list.md +++ b/examples/2.4.x/server-dart/examples/apps/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -AppsList result = await apps.list( +models.AppsList result = await apps.list( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/apps/update-labels.md b/examples/2.4.x/server-dart/examples/apps/update-labels.md index ad7964915..87f6406d4 100644 --- a/examples/2.4.x/server-dart/examples/apps/update-labels.md +++ b/examples/2.4.x/server-dart/examples/apps/update-labels.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.updateLabels( +models.App result = await apps.updateLabels( appId: '', labels: [], ); diff --git a/examples/2.4.x/server-dart/examples/apps/update-team.md b/examples/2.4.x/server-dart/examples/apps/update-team.md index a777349a4..85920a546 100644 --- a/examples/2.4.x/server-dart/examples/apps/update-team.md +++ b/examples/2.4.x/server-dart/examples/apps/update-team.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.updateTeam( +models.App result = await apps.updateTeam( appId: '', teamId: '', ); diff --git a/examples/2.4.x/server-dart/examples/apps/update.md b/examples/2.4.x/server-dart/examples/apps/update.md index ac04a4dd9..3527c6871 100644 --- a/examples/2.4.x/server-dart/examples/apps/update.md +++ b/examples/2.4.x/server-dart/examples/apps/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Apps apps = Apps(client); -App result = await apps.update( +models.App result = await apps.update( appId: '', name: '', description: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/avatars/update-photo.md b/examples/2.4.x/server-dart/examples/avatars/update-photo.md index 118e1d459..5220fd27c 100644 --- a/examples/2.4.x/server-dart/examples/avatars/update-photo.md +++ b/examples/2.4.x/server-dart/examples/avatars/update-photo.md @@ -1,6 +1,7 @@ ```dart import 'dart:io'; import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,7 +10,7 @@ Client client = Client() Avatars avatars = Avatars(client); -Account result = await avatars.updatePhoto( +models.Account result = await avatars.updatePhoto( file: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), ); ``` diff --git a/examples/2.4.x/server-dart/examples/backups/create-archive.md b/examples/2.4.x/server-dart/examples/backups/create-archive.md index f6856c119..f98b8e3e8 100644 --- a/examples/2.4.x/server-dart/examples/backups/create-archive.md +++ b/examples/2.4.x/server-dart/examples/backups/create-archive.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Backups backups = Backups(client); -BackupArchive result = await backups.createArchive( +models.BackupArchive result = await backups.createArchive( services: [enums.BackupServices.databases], resourceId: '', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/backups/create-policy.md b/examples/2.4.x/server-dart/examples/backups/create-policy.md index 0241dcf1d..852e6b718 100644 --- a/examples/2.4.x/server-dart/examples/backups/create-policy.md +++ b/examples/2.4.x/server-dart/examples/backups/create-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Backups backups = Backups(client); -BackupPolicy result = await backups.createPolicy( +models.BackupPolicy result = await backups.createPolicy( policyId: '', services: [enums.BackupServices.databases], retention: 1, diff --git a/examples/2.4.x/server-dart/examples/backups/create-restoration.md b/examples/2.4.x/server-dart/examples/backups/create-restoration.md index 84bc8ae96..5701ed8c6 100644 --- a/examples/2.4.x/server-dart/examples/backups/create-restoration.md +++ b/examples/2.4.x/server-dart/examples/backups/create-restoration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Backups backups = Backups(client); -BackupRestoration result = await backups.createRestoration( +models.BackupRestoration result = await backups.createRestoration( archiveId: '', services: [enums.BackupServices.databases], newResourceId: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/backups/get-archive.md b/examples/2.4.x/server-dart/examples/backups/get-archive.md index 16d714a48..e06164fbb 100644 --- a/examples/2.4.x/server-dart/examples/backups/get-archive.md +++ b/examples/2.4.x/server-dart/examples/backups/get-archive.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Backups backups = Backups(client); -BackupArchive result = await backups.getArchive( +models.BackupArchive result = await backups.getArchive( archiveId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/backups/get-policy.md b/examples/2.4.x/server-dart/examples/backups/get-policy.md index 6a3d9606f..d25c17654 100644 --- a/examples/2.4.x/server-dart/examples/backups/get-policy.md +++ b/examples/2.4.x/server-dart/examples/backups/get-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Backups backups = Backups(client); -BackupPolicy result = await backups.getPolicy( +models.BackupPolicy result = await backups.getPolicy( policyId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/backups/get-restoration.md b/examples/2.4.x/server-dart/examples/backups/get-restoration.md index ef2a2a0b8..eb108e02e 100644 --- a/examples/2.4.x/server-dart/examples/backups/get-restoration.md +++ b/examples/2.4.x/server-dart/examples/backups/get-restoration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Backups backups = Backups(client); -BackupRestoration result = await backups.getRestoration( +models.BackupRestoration result = await backups.getRestoration( restorationId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/backups/list-archives.md b/examples/2.4.x/server-dart/examples/backups/list-archives.md index 57df2f169..8ab0dc1dd 100644 --- a/examples/2.4.x/server-dart/examples/backups/list-archives.md +++ b/examples/2.4.x/server-dart/examples/backups/list-archives.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Backups backups = Backups(client); -BackupArchiveList result = await backups.listArchives( +models.BackupArchiveList result = await backups.listArchives( queries: [], // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/backups/list-policies.md b/examples/2.4.x/server-dart/examples/backups/list-policies.md index 00a04a893..310ba9923 100644 --- a/examples/2.4.x/server-dart/examples/backups/list-policies.md +++ b/examples/2.4.x/server-dart/examples/backups/list-policies.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Backups backups = Backups(client); -BackupPolicyList result = await backups.listPolicies( +models.BackupPolicyList result = await backups.listPolicies( queries: [], // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/backups/list-restorations.md b/examples/2.4.x/server-dart/examples/backups/list-restorations.md index a4502a7bd..92250fabf 100644 --- a/examples/2.4.x/server-dart/examples/backups/list-restorations.md +++ b/examples/2.4.x/server-dart/examples/backups/list-restorations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Backups backups = Backups(client); -BackupRestorationList result = await backups.listRestorations( +models.BackupRestorationList result = await backups.listRestorations( queries: [], // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/backups/update-policy.md b/examples/2.4.x/server-dart/examples/backups/update-policy.md index e46c84146..d4b8705e7 100644 --- a/examples/2.4.x/server-dart/examples/backups/update-policy.md +++ b/examples/2.4.x/server-dart/examples/backups/update-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Backups backups = Backups(client); -BackupPolicy result = await backups.updatePolicy( +models.BackupPolicy result = await backups.updatePolicy( policyId: '', name: '', // (optional) retention: 1, // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/create-big-int-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-big-int-attribute.md index 2ef51ff23..94eab7e6c 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-big-int-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-big-int-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeBigint result = await databases.createBigIntAttribute( +models.AttributeBigint result = await databases.createBigIntAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-boolean-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-boolean-attribute.md index f997555db..924042c6d 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-boolean-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-boolean-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeBoolean result = await databases.createBooleanAttribute( +models.AttributeBoolean result = await databases.createBooleanAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-collection.md b/examples/2.4.x/server-dart/examples/databases/create-collection.md index f0c3aea51..7596f5fee 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-collection.md +++ b/examples/2.4.x/server-dart/examples/databases/create-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Databases databases = Databases(client); -Collection result = await databases.createCollection( +models.Collection result = await databases.createCollection( databaseId: '', collectionId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-datetime-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-datetime-attribute.md index 88a1069b0..4403396fd 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-datetime-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-datetime-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeDatetime result = await databases.createDatetimeAttribute( +models.AttributeDatetime result = await databases.createDatetimeAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-document.md b/examples/2.4.x/server-dart/examples/databases/create-document.md index f6dc0aaa6..f5dc579a5 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-document.md +++ b/examples/2.4.x/server-dart/examples/databases/create-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.createDocument( +models.Document result = await databases.createDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-documents.md b/examples/2.4.x/server-dart/examples/databases/create-documents.md index 0a7dad529..e6ac8064d 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-documents.md +++ b/examples/2.4.x/server-dart/examples/databases/create-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,12 +9,12 @@ Client client = Client() Databases databases = Databases(client); -DocumentList result = await databases.createDocuments( +models.DocumentList result = await databases.createDocuments( databaseId: '', collectionId: '', documents: [ { - "$id": "example1", + "\$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", diff --git a/examples/2.4.x/server-dart/examples/databases/create-email-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-email-attribute.md index beac778d1..0597ef58b 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-email-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-email-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeEmail result = await databases.createEmailAttribute( +models.AttributeEmail result = await databases.createEmailAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-enum-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-enum-attribute.md index b690880f8..3710abf6f 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-enum-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-enum-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeEnum result = await databases.createEnumAttribute( +models.AttributeEnum result = await databases.createEnumAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-float-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-float-attribute.md index 5cce5c6ed..2be8e1601 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-float-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-float-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeFloat result = await databases.createFloatAttribute( +models.AttributeFloat result = await databases.createFloatAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-index.md b/examples/2.4.x/server-dart/examples/databases/create-index.md index 84a3a01a7..41341252f 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-index.md +++ b/examples/2.4.x/server-dart/examples/databases/create-index.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Databases databases = Databases(client); -Index result = await databases.createIndex( +models.Index result = await databases.createIndex( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-integer-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-integer-attribute.md index 333f82809..9507e7125 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-integer-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-integer-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeInteger result = await databases.createIntegerAttribute( +models.AttributeInteger result = await databases.createIntegerAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-ip-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-ip-attribute.md index c9334bc39..fab04a9cd 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-ip-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-ip-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeIp result = await databases.createIpAttribute( +models.AttributeIp result = await databases.createIpAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-line-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-line-attribute.md index aca28abd3..dbfaf2b1a 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-line-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-line-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeLine result = await databases.createLineAttribute( +models.AttributeLine result = await databases.createLineAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-longtext-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-longtext-attribute.md index fae172d8a..2beed9900 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-longtext-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-longtext-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeLongtext result = await databases.createLongtextAttribute( +models.AttributeLongtext result = await databases.createLongtextAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-mediumtext-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-mediumtext-attribute.md index a93a23c1c..c018e9682 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-mediumtext-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-mediumtext-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeMediumtext result = await databases.createMediumtextAttribute( +models.AttributeMediumtext result = await databases.createMediumtextAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-operations.md b/examples/2.4.x/server-dart/examples/databases/create-operations.md index d44b4e839..8bca17337 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-operations.md +++ b/examples/2.4.x/server-dart/examples/databases/create-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Transaction result = await databases.createOperations( +models.Transaction result = await databases.createOperations( transactionId: '', operations: [ { diff --git a/examples/2.4.x/server-dart/examples/databases/create-point-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-point-attribute.md index 6d320c48c..012f556e1 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-point-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-point-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributePoint result = await databases.createPointAttribute( +models.AttributePoint result = await databases.createPointAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-polygon-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-polygon-attribute.md index 62923f950..265e91349 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-polygon-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-polygon-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributePolygon result = await databases.createPolygonAttribute( +models.AttributePolygon result = await databases.createPolygonAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-relationship-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-relationship-attribute.md index 2cb68d98f..1c82a7c92 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-relationship-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-relationship-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeRelationship result = await databases.createRelationshipAttribute( +models.AttributeRelationship result = await databases.createRelationshipAttribute( databaseId: '', collectionId: '', relatedCollectionId: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-string-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-string-attribute.md index d6b24de09..97f07bb52 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-string-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-string-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeString result = await databases.createStringAttribute( +models.AttributeString result = await databases.createStringAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-text-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-text-attribute.md index 0a53ffb1a..a075b5dac 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-text-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-text-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeText result = await databases.createTextAttribute( +models.AttributeText result = await databases.createTextAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-transaction.md b/examples/2.4.x/server-dart/examples/databases/create-transaction.md index 5ab1c8ae1..ddc57b05a 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-transaction.md +++ b/examples/2.4.x/server-dart/examples/databases/create-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Transaction result = await databases.createTransaction( +models.Transaction result = await databases.createTransaction( ttl: 60, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/databases/create-url-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-url-attribute.md index cffdb5361..5aeeaad46 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-url-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-url-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeUrl result = await databases.createUrlAttribute( +models.AttributeUrl result = await databases.createUrlAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create-varchar-attribute.md b/examples/2.4.x/server-dart/examples/databases/create-varchar-attribute.md index c0dc22595..f7b286d34 100644 --- a/examples/2.4.x/server-dart/examples/databases/create-varchar-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/create-varchar-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeVarchar result = await databases.createVarcharAttribute( +models.AttributeVarchar result = await databases.createVarcharAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/create.md b/examples/2.4.x/server-dart/examples/databases/create.md index 3abe57d10..3a334374f 100644 --- a/examples/2.4.x/server-dart/examples/databases/create.md +++ b/examples/2.4.x/server-dart/examples/databases/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Database result = await databases.create( +models.Database result = await databases.create( databaseId: '', name: '', enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/decrement-document-attribute.md b/examples/2.4.x/server-dart/examples/databases/decrement-document-attribute.md index 2f99b28ad..655faf278 100644 --- a/examples/2.4.x/server-dart/examples/databases/decrement-document-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/decrement-document-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.decrementDocumentAttribute( +models.Document result = await databases.decrementDocumentAttribute( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/databases/delete-documents.md b/examples/2.4.x/server-dart/examples/databases/delete-documents.md index 6e3c289f3..bc4822b34 100644 --- a/examples/2.4.x/server-dart/examples/databases/delete-documents.md +++ b/examples/2.4.x/server-dart/examples/databases/delete-documents.md @@ -11,7 +11,7 @@ Databases databases = Databases(client); await databases.deleteDocuments( databaseId: '', collectionId: '', - queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"\"]}"], // (optional) + queries: ["{\"method\":\"equal\", \"attribute\":\"\$id\", \"values\":[\"\"]}"], // (optional) transactionId: '', // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/databases/get-collection.md b/examples/2.4.x/server-dart/examples/databases/get-collection.md index 0e19f4e04..0950286c4 100644 --- a/examples/2.4.x/server-dart/examples/databases/get-collection.md +++ b/examples/2.4.x/server-dart/examples/databases/get-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Collection result = await databases.getCollection( +models.Collection result = await databases.getCollection( databaseId: '', collectionId: '', ); diff --git a/examples/2.4.x/server-dart/examples/databases/get-document.md b/examples/2.4.x/server-dart/examples/databases/get-document.md index 75fbb943e..5597793e3 100644 --- a/examples/2.4.x/server-dart/examples/databases/get-document.md +++ b/examples/2.4.x/server-dart/examples/databases/get-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.getDocument( +models.Document result = await databases.getDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/databases/get-index.md b/examples/2.4.x/server-dart/examples/databases/get-index.md index b516dd88b..7872e5501 100644 --- a/examples/2.4.x/server-dart/examples/databases/get-index.md +++ b/examples/2.4.x/server-dart/examples/databases/get-index.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Index result = await databases.getIndex( +models.Index result = await databases.getIndex( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/get-transaction.md b/examples/2.4.x/server-dart/examples/databases/get-transaction.md index 230f2ee61..7063930f1 100644 --- a/examples/2.4.x/server-dart/examples/databases/get-transaction.md +++ b/examples/2.4.x/server-dart/examples/databases/get-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Transaction result = await databases.getTransaction( +models.Transaction result = await databases.getTransaction( transactionId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/databases/get.md b/examples/2.4.x/server-dart/examples/databases/get.md index e8b042b37..8f0ed032d 100644 --- a/examples/2.4.x/server-dart/examples/databases/get.md +++ b/examples/2.4.x/server-dart/examples/databases/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Database result = await databases.get( +models.Database result = await databases.get( databaseId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/databases/increment-document-attribute.md b/examples/2.4.x/server-dart/examples/databases/increment-document-attribute.md index 7a7170237..5ac034126 100644 --- a/examples/2.4.x/server-dart/examples/databases/increment-document-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/increment-document-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.incrementDocumentAttribute( +models.Document result = await databases.incrementDocumentAttribute( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/databases/list-attributes.md b/examples/2.4.x/server-dart/examples/databases/list-attributes.md index 3d98457fe..47c869cad 100644 --- a/examples/2.4.x/server-dart/examples/databases/list-attributes.md +++ b/examples/2.4.x/server-dart/examples/databases/list-attributes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeList result = await databases.listAttributes( +models.AttributeList result = await databases.listAttributes( databaseId: '', collectionId: '', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/list-collections.md b/examples/2.4.x/server-dart/examples/databases/list-collections.md index 6b983d6bb..e90a418cf 100644 --- a/examples/2.4.x/server-dart/examples/databases/list-collections.md +++ b/examples/2.4.x/server-dart/examples/databases/list-collections.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -CollectionList result = await databases.listCollections( +models.CollectionList result = await databases.listCollections( databaseId: '', queries: [], // (optional) search: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/list-documents.md b/examples/2.4.x/server-dart/examples/databases/list-documents.md index 5cb4a1231..15dcd7b7b 100644 --- a/examples/2.4.x/server-dart/examples/databases/list-documents.md +++ b/examples/2.4.x/server-dart/examples/databases/list-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -DocumentList result = await databases.listDocuments( +models.DocumentList result = await databases.listDocuments( databaseId: '', collectionId: '', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/list-indexes.md b/examples/2.4.x/server-dart/examples/databases/list-indexes.md index ccfa33582..65960c6b5 100644 --- a/examples/2.4.x/server-dart/examples/databases/list-indexes.md +++ b/examples/2.4.x/server-dart/examples/databases/list-indexes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -IndexList result = await databases.listIndexes( +models.IndexList result = await databases.listIndexes( databaseId: '', collectionId: '', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/list-transactions.md b/examples/2.4.x/server-dart/examples/databases/list-transactions.md index 39b49d5eb..943c56f17 100644 --- a/examples/2.4.x/server-dart/examples/databases/list-transactions.md +++ b/examples/2.4.x/server-dart/examples/databases/list-transactions.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -TransactionList result = await databases.listTransactions( +models.TransactionList result = await databases.listTransactions( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/databases/list.md b/examples/2.4.x/server-dart/examples/databases/list.md index 3da131483..bee00ecc6 100644 --- a/examples/2.4.x/server-dart/examples/databases/list.md +++ b/examples/2.4.x/server-dart/examples/databases/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -DatabaseList result = await databases.list( +models.DatabaseList result = await databases.list( queries: [], // (optional) search: '', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/update-big-int-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-big-int-attribute.md index 93a91d624..187597f1d 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-big-int-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-big-int-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeBigint result = await databases.updateBigIntAttribute( +models.AttributeBigint result = await databases.updateBigIntAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-boolean-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-boolean-attribute.md index 2d7ba021e..c6ca0973f 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-boolean-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-boolean-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeBoolean result = await databases.updateBooleanAttribute( +models.AttributeBoolean result = await databases.updateBooleanAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-collection.md b/examples/2.4.x/server-dart/examples/databases/update-collection.md index b724e7b94..64276b36c 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-collection.md +++ b/examples/2.4.x/server-dart/examples/databases/update-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Databases databases = Databases(client); -Collection result = await databases.updateCollection( +models.Collection result = await databases.updateCollection( databaseId: '', collectionId: '', name: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/update-datetime-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-datetime-attribute.md index 3534c431f..7892a0dd9 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-datetime-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-datetime-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeDatetime result = await databases.updateDatetimeAttribute( +models.AttributeDatetime result = await databases.updateDatetimeAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-document.md b/examples/2.4.x/server-dart/examples/databases/update-document.md index ccfc6838c..811084e25 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-document.md +++ b/examples/2.4.x/server-dart/examples/databases/update-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.updateDocument( +models.Document result = await databases.updateDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-documents.md b/examples/2.4.x/server-dart/examples/databases/update-documents.md index 9ab88a699..f89f9eb91 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-documents.md +++ b/examples/2.4.x/server-dart/examples/databases/update-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -DocumentList result = await databases.updateDocuments( +models.DocumentList result = await databases.updateDocuments( databaseId: '', collectionId: '', data: { diff --git a/examples/2.4.x/server-dart/examples/databases/update-email-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-email-attribute.md index ba3944fd8..d68ffb94c 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-email-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-email-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeEmail result = await databases.updateEmailAttribute( +models.AttributeEmail result = await databases.updateEmailAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-enum-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-enum-attribute.md index 0edf10715..02f2fb1af 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-enum-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-enum-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeEnum result = await databases.updateEnumAttribute( +models.AttributeEnum result = await databases.updateEnumAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-float-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-float-attribute.md index f46c3f504..003286241 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-float-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-float-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeFloat result = await databases.updateFloatAttribute( +models.AttributeFloat result = await databases.updateFloatAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-integer-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-integer-attribute.md index 5d5928aa8..1e62a12e1 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-integer-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-integer-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeInteger result = await databases.updateIntegerAttribute( +models.AttributeInteger result = await databases.updateIntegerAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-ip-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-ip-attribute.md index d0f37ea5f..e911f7f07 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-ip-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-ip-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeIp result = await databases.updateIpAttribute( +models.AttributeIp result = await databases.updateIpAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-line-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-line-attribute.md index 2a8620930..38f6dcc85 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-line-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-line-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeLine result = await databases.updateLineAttribute( +models.AttributeLine result = await databases.updateLineAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-longtext-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-longtext-attribute.md index daf0707b4..57ac46dea 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-longtext-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-longtext-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeLongtext result = await databases.updateLongtextAttribute( +models.AttributeLongtext result = await databases.updateLongtextAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-mediumtext-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-mediumtext-attribute.md index 08bccb671..814c0c91f 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-mediumtext-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-mediumtext-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeMediumtext result = await databases.updateMediumtextAttribute( +models.AttributeMediumtext result = await databases.updateMediumtextAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-point-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-point-attribute.md index 2eae40b81..4a4721d47 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-point-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-point-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributePoint result = await databases.updatePointAttribute( +models.AttributePoint result = await databases.updatePointAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-polygon-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-polygon-attribute.md index a72ccd79f..dd2c47ffa 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-polygon-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-polygon-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributePolygon result = await databases.updatePolygonAttribute( +models.AttributePolygon result = await databases.updatePolygonAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-relationship-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-relationship-attribute.md index e1ab8b3b9..0d39c1f32 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-relationship-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-relationship-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeRelationship result = await databases.updateRelationshipAttribute( +models.AttributeRelationship result = await databases.updateRelationshipAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-string-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-string-attribute.md index 13530814a..9949f130c 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-string-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-string-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeString result = await databases.updateStringAttribute( +models.AttributeString result = await databases.updateStringAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-text-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-text-attribute.md index bd74f458f..ea86b8b80 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-text-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-text-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeText result = await databases.updateTextAttribute( +models.AttributeText result = await databases.updateTextAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-transaction.md b/examples/2.4.x/server-dart/examples/databases/update-transaction.md index f43e7e5d7..3a414bf74 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-transaction.md +++ b/examples/2.4.x/server-dart/examples/databases/update-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Transaction result = await databases.updateTransaction( +models.Transaction result = await databases.updateTransaction( transactionId: '', commit: false, // (optional) rollback: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/update-url-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-url-attribute.md index d873907cf..c814a5101 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-url-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-url-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeUrl result = await databases.updateUrlAttribute( +models.AttributeUrl result = await databases.updateUrlAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update-varchar-attribute.md b/examples/2.4.x/server-dart/examples/databases/update-varchar-attribute.md index 96d6775ec..e3c7b237a 100644 --- a/examples/2.4.x/server-dart/examples/databases/update-varchar-attribute.md +++ b/examples/2.4.x/server-dart/examples/databases/update-varchar-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -AttributeVarchar result = await databases.updateVarcharAttribute( +models.AttributeVarchar result = await databases.updateVarcharAttribute( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/databases/update.md b/examples/2.4.x/server-dart/examples/databases/update.md index 4c097968a..cc9dd1609 100644 --- a/examples/2.4.x/server-dart/examples/databases/update.md +++ b/examples/2.4.x/server-dart/examples/databases/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Databases databases = Databases(client); -Database result = await databases.update( +models.Database result = await databases.update( databaseId: '', name: '', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/databases/upsert-document.md b/examples/2.4.x/server-dart/examples/databases/upsert-document.md index 46a70fda1..de82b9ff8 100644 --- a/examples/2.4.x/server-dart/examples/databases/upsert-document.md +++ b/examples/2.4.x/server-dart/examples/databases/upsert-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Databases databases = Databases(client); -Document result = await databases.upsertDocument( +models.Document result = await databases.upsertDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/databases/upsert-documents.md b/examples/2.4.x/server-dart/examples/databases/upsert-documents.md index 705131536..67b406bf1 100644 --- a/examples/2.4.x/server-dart/examples/databases/upsert-documents.md +++ b/examples/2.4.x/server-dart/examples/databases/upsert-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,12 +9,12 @@ Client client = Client() Databases databases = Databases(client); -DocumentList result = await databases.upsertDocuments( +models.DocumentList result = await databases.upsertDocuments( databaseId: '', collectionId: '', documents: [ { - "$id": "example1", + "\$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", diff --git a/examples/2.4.x/server-dart/examples/documentsdb/create-collection.md b/examples/2.4.x/server-dart/examples/documentsdb/create-collection.md index dd591620d..720d8bb09 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/create-collection.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/create-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Collection result = await documentsDB.createCollection( +models.Collection result = await documentsDB.createCollection( databaseId: '', collectionId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/create-document.md b/examples/2.4.x/server-dart/examples/documentsdb/create-document.md index 07d152ba1..0c6c899bc 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/create-document.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/create-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.createDocument( +models.Document result = await documentsDB.createDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/create-documents.md b/examples/2.4.x/server-dart/examples/documentsdb/create-documents.md index 625b3eabd..7cd34dd2b 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/create-documents.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/create-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,12 +9,12 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DocumentList result = await documentsDB.createDocuments( +models.DocumentList result = await documentsDB.createDocuments( databaseId: '', collectionId: '', documents: [ { - "$id": "example1", + "\$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", diff --git a/examples/2.4.x/server-dart/examples/documentsdb/create-failover.md b/examples/2.4.x/server-dart/examples/documentsdb/create-failover.md index e6afb132f..8d3884916 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/create-failover.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/create-failover.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DedicatedDatabase result = await documentsDB.createFailover( +models.DedicatedDatabase result = await documentsDB.createFailover( databaseId: '', targetReplicaId: '', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/documentsdb/create-index.md b/examples/2.4.x/server-dart/examples/documentsdb/create-index.md index 14b7a936a..bbe1f91cc 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/create-index.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/create-index.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Index result = await documentsDB.createIndex( +models.Index result = await documentsDB.createIndex( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/create-operations.md b/examples/2.4.x/server-dart/examples/documentsdb/create-operations.md index e91cd1867..5b05d5bc0 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/create-operations.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/create-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Transaction result = await documentsDB.createOperations( +models.Transaction result = await documentsDB.createOperations( transactionId: '', operations: [ { diff --git a/examples/2.4.x/server-dart/examples/documentsdb/create-transaction.md b/examples/2.4.x/server-dart/examples/documentsdb/create-transaction.md index caf13b367..239cbde5f 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/create-transaction.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/create-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Transaction result = await documentsDB.createTransaction( +models.Transaction result = await documentsDB.createTransaction( ttl: 60, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/documentsdb/create.md b/examples/2.4.x/server-dart/examples/documentsdb/create.md index 6ef92e081..d15f8df88 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/create.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Database result = await documentsDB.create( +models.Database result = await documentsDB.create( databaseId: '', name: '', enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/documentsdb/decrement-document-attribute.md b/examples/2.4.x/server-dart/examples/documentsdb/decrement-document-attribute.md index 883644f1a..5ed848277 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/decrement-document-attribute.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/decrement-document-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.decrementDocumentAttribute( +models.Document result = await documentsDB.decrementDocumentAttribute( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/delete-documents.md b/examples/2.4.x/server-dart/examples/documentsdb/delete-documents.md index 1934a1767..1a6be8722 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/delete-documents.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/delete-documents.md @@ -11,7 +11,7 @@ DocumentsDB documentsDB = DocumentsDB(client); await documentsDB.deleteDocuments( databaseId: '', collectionId: '', - queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"\"]}"], // (optional) + queries: ["{\"method\":\"equal\", \"attribute\":\"\$id\", \"values\":[\"\"]}"], // (optional) transactionId: '', // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/documentsdb/get-collection.md b/examples/2.4.x/server-dart/examples/documentsdb/get-collection.md index 5b23bdb7e..d98fde5ff 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/get-collection.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/get-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Collection result = await documentsDB.getCollection( +models.Collection result = await documentsDB.getCollection( databaseId: '', collectionId: '', ); diff --git a/examples/2.4.x/server-dart/examples/documentsdb/get-document.md b/examples/2.4.x/server-dart/examples/documentsdb/get-document.md index 02b6a7a43..13c53c73e 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/get-document.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/get-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.getDocument( +models.Document result = await documentsDB.getDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/get-index.md b/examples/2.4.x/server-dart/examples/documentsdb/get-index.md index bbb7891c6..a53b4f6c0 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/get-index.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/get-index.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Index result = await documentsDB.getIndex( +models.Index result = await documentsDB.getIndex( databaseId: '', collectionId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/get-replicas.md b/examples/2.4.x/server-dart/examples/documentsdb/get-replicas.md index 247f9d68c..e2d7d90f5 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/get-replicas.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/get-replicas.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DedicatedDatabaseReplicas result = await documentsDB.getReplicas( +models.DedicatedDatabaseReplicas result = await documentsDB.getReplicas( databaseId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/documentsdb/get-status.md b/examples/2.4.x/server-dart/examples/documentsdb/get-status.md index 2058db8ef..9609d905c 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/get-status.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/get-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DatabaseStatus result = await documentsDB.getStatus( +models.DatabaseStatus result = await documentsDB.getStatus( databaseId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/documentsdb/get-transaction.md b/examples/2.4.x/server-dart/examples/documentsdb/get-transaction.md index 688128f20..38c7b97b2 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/get-transaction.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/get-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Transaction result = await documentsDB.getTransaction( +models.Transaction result = await documentsDB.getTransaction( transactionId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/documentsdb/get.md b/examples/2.4.x/server-dart/examples/documentsdb/get.md index 09bcb91f8..84f6d6e81 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/get.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Database result = await documentsDB.get( +models.Database result = await documentsDB.get( databaseId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/documentsdb/increment-document-attribute.md b/examples/2.4.x/server-dart/examples/documentsdb/increment-document-attribute.md index e7b7d7ff2..6974be404 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/increment-document-attribute.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/increment-document-attribute.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.incrementDocumentAttribute( +models.Document result = await documentsDB.incrementDocumentAttribute( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/list-collections.md b/examples/2.4.x/server-dart/examples/documentsdb/list-collections.md index 45cef6362..13d21af41 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/list-collections.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/list-collections.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -CollectionList result = await documentsDB.listCollections( +models.CollectionList result = await documentsDB.listCollections( databaseId: '', queries: [], // (optional) search: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/documentsdb/list-documents.md b/examples/2.4.x/server-dart/examples/documentsdb/list-documents.md index 5619c5cfd..f2882ff88 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/list-documents.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/list-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DocumentList result = await documentsDB.listDocuments( +models.DocumentList result = await documentsDB.listDocuments( databaseId: '', collectionId: '', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/documentsdb/list-indexes.md b/examples/2.4.x/server-dart/examples/documentsdb/list-indexes.md index b7285af15..c22c98d27 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/list-indexes.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/list-indexes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -IndexList result = await documentsDB.listIndexes( +models.IndexList result = await documentsDB.listIndexes( databaseId: '', collectionId: '', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/documentsdb/list-operations.md b/examples/2.4.x/server-dart/examples/documentsdb/list-operations.md index 8d83bfff8..73caee96b 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/list-operations.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/list-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DedicatedDatabaseOperationList result = await documentsDB.listOperations( +models.DedicatedDatabaseOperationList result = await documentsDB.listOperations( databaseId: '', status: 'queued', // (optional) limit: 1, // (optional) diff --git a/examples/2.4.x/server-dart/examples/documentsdb/list-specifications.md b/examples/2.4.x/server-dart/examples/documentsdb/list-specifications.md index bb6863d1e..618bab7cc 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/list-specifications.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/list-specifications.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DedicatedDatabaseSpecificationList result = await documentsDB.listSpecifications(); +models.DedicatedDatabaseSpecificationList result = await documentsDB.listSpecifications(); ``` diff --git a/examples/2.4.x/server-dart/examples/documentsdb/list-transactions.md b/examples/2.4.x/server-dart/examples/documentsdb/list-transactions.md index 76c78ba5a..1161f3bb8 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/list-transactions.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/list-transactions.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -TransactionList result = await documentsDB.listTransactions( +models.TransactionList result = await documentsDB.listTransactions( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/documentsdb/list.md b/examples/2.4.x/server-dart/examples/documentsdb/list.md index d5ef52374..fdb63d5e2 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/list.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DatabaseList result = await documentsDB.list( +models.DatabaseList result = await documentsDB.list( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/documentsdb/update-collection.md b/examples/2.4.x/server-dart/examples/documentsdb/update-collection.md index c90d2c4b9..480616990 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/update-collection.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/update-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Collection result = await documentsDB.updateCollection( +models.Collection result = await documentsDB.updateCollection( databaseId: '', collectionId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/update-document.md b/examples/2.4.x/server-dart/examples/documentsdb/update-document.md index 99746d741..c6d30b258 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/update-document.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/update-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.updateDocument( +models.Document result = await documentsDB.updateDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/update-documents.md b/examples/2.4.x/server-dart/examples/documentsdb/update-documents.md index 5554e087b..e8eea0be4 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/update-documents.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/update-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DocumentList result = await documentsDB.updateDocuments( +models.DocumentList result = await documentsDB.updateDocuments( databaseId: '', collectionId: '', data: {}, // (optional) diff --git a/examples/2.4.x/server-dart/examples/documentsdb/update-transaction.md b/examples/2.4.x/server-dart/examples/documentsdb/update-transaction.md index d5dcaeb58..d14ddec6b 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/update-transaction.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/update-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Transaction result = await documentsDB.updateTransaction( +models.Transaction result = await documentsDB.updateTransaction( transactionId: '', commit: false, // (optional) rollback: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/documentsdb/update.md b/examples/2.4.x/server-dart/examples/documentsdb/update.md index f0ebb6715..971a60cfb 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/update.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Database result = await documentsDB.update( +models.Database result = await documentsDB.update( databaseId: '', name: '', enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/documentsdb/upsert-document.md b/examples/2.4.x/server-dart/examples/documentsdb/upsert-document.md index 71c5db06d..694b11a63 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/upsert-document.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/upsert-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -Document result = await documentsDB.upsertDocument( +models.Document result = await documentsDB.upsertDocument( databaseId: '', collectionId: '', documentId: '', diff --git a/examples/2.4.x/server-dart/examples/documentsdb/upsert-documents.md b/examples/2.4.x/server-dart/examples/documentsdb/upsert-documents.md index 355835fb2..43c6b80af 100644 --- a/examples/2.4.x/server-dart/examples/documentsdb/upsert-documents.md +++ b/examples/2.4.x/server-dart/examples/documentsdb/upsert-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,12 +9,12 @@ Client client = Client() DocumentsDB documentsDB = DocumentsDB(client); -DocumentList result = await documentsDB.upsertDocuments( +models.DocumentList result = await documentsDB.upsertDocuments( databaseId: '', collectionId: '', documents: [ { - "$id": "example1", + "\$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", diff --git a/examples/2.4.x/server-dart/examples/domains/create-preset-google-workspace.md b/examples/2.4.x/server-dart/examples/domains/create-preset-google-workspace.md index 230225c14..bcac9000a 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-preset-google-workspace.md +++ b/examples/2.4.x/server-dart/examples/domains/create-preset-google-workspace.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.createPresetGoogleWorkspace( +models.DnsRecordsList result = await domains.createPresetGoogleWorkspace( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/create-preset-i-cloud.md b/examples/2.4.x/server-dart/examples/domains/create-preset-i-cloud.md index 0cec6673c..901f90c02 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-preset-i-cloud.md +++ b/examples/2.4.x/server-dart/examples/domains/create-preset-i-cloud.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.createPresetICloud( +models.DnsRecordsList result = await domains.createPresetICloud( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/create-preset-mailgun.md b/examples/2.4.x/server-dart/examples/domains/create-preset-mailgun.md index 05b31f62b..79c08fee6 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-preset-mailgun.md +++ b/examples/2.4.x/server-dart/examples/domains/create-preset-mailgun.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.createPresetMailgun( +models.DnsRecordsList result = await domains.createPresetMailgun( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/create-preset-outlook.md b/examples/2.4.x/server-dart/examples/domains/create-preset-outlook.md index f43342925..3fc51716b 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-preset-outlook.md +++ b/examples/2.4.x/server-dart/examples/domains/create-preset-outlook.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.createPresetOutlook( +models.DnsRecordsList result = await domains.createPresetOutlook( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/create-preset-proton-mail.md b/examples/2.4.x/server-dart/examples/domains/create-preset-proton-mail.md index 533c2830c..313ce10f8 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-preset-proton-mail.md +++ b/examples/2.4.x/server-dart/examples/domains/create-preset-proton-mail.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.createPresetProtonMail( +models.DnsRecordsList result = await domains.createPresetProtonMail( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/create-preset-zoho.md b/examples/2.4.x/server-dart/examples/domains/create-preset-zoho.md index 8d675db4a..9e5630e38 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-preset-zoho.md +++ b/examples/2.4.x/server-dart/examples/domains/create-preset-zoho.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.createPresetZoho( +models.DnsRecordsList result = await domains.createPresetZoho( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-a.md b/examples/2.4.x/server-dart/examples/domains/create-record-a.md index 7aeae7dfd..38dc338e1 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-a.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-a.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordA( +models.DnsRecord result = await domains.createRecordA( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-aaaa.md b/examples/2.4.x/server-dart/examples/domains/create-record-aaaa.md index bf75a9431..cb03036f7 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-aaaa.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-aaaa.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordAAAA( +models.DnsRecord result = await domains.createRecordAAAA( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-alias.md b/examples/2.4.x/server-dart/examples/domains/create-record-alias.md index e011466d2..50b4b1687 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-alias.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-alias.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordAlias( +models.DnsRecord result = await domains.createRecordAlias( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-caa.md b/examples/2.4.x/server-dart/examples/domains/create-record-caa.md index 6e7bac223..5bf3429db 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-caa.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-caa.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordCAA( +models.DnsRecord result = await domains.createRecordCAA( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-cname.md b/examples/2.4.x/server-dart/examples/domains/create-record-cname.md index 3a91d431f..7c8e52537 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-cname.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-cname.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordCNAME( +models.DnsRecord result = await domains.createRecordCNAME( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-https.md b/examples/2.4.x/server-dart/examples/domains/create-record-https.md index 76cb9b305..d64bc9189 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-https.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-https.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordHTTPS( +models.DnsRecord result = await domains.createRecordHTTPS( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-mx.md b/examples/2.4.x/server-dart/examples/domains/create-record-mx.md index b9c9a326e..b01cceed3 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-mx.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-mx.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordMX( +models.DnsRecord result = await domains.createRecordMX( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-ns.md b/examples/2.4.x/server-dart/examples/domains/create-record-ns.md index 8e9494884..b7bc8e087 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-ns.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-ns.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordNS( +models.DnsRecord result = await domains.createRecordNS( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-srv.md b/examples/2.4.x/server-dart/examples/domains/create-record-srv.md index f8614c932..2da7bdb6a 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-srv.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-srv.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordSRV( +models.DnsRecord result = await domains.createRecordSRV( domainId: '', name: '', value: '', diff --git a/examples/2.4.x/server-dart/examples/domains/create-record-txt.md b/examples/2.4.x/server-dart/examples/domains/create-record-txt.md index a3c226a70..4600f423d 100644 --- a/examples/2.4.x/server-dart/examples/domains/create-record-txt.md +++ b/examples/2.4.x/server-dart/examples/domains/create-record-txt.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.createRecordTXT( +models.DnsRecord result = await domains.createRecordTXT( domainId: '', name: '', ttl: 1, diff --git a/examples/2.4.x/server-dart/examples/domains/create.md b/examples/2.4.x/server-dart/examples/domains/create.md index a2a796581..2fc562837 100644 --- a/examples/2.4.x/server-dart/examples/domains/create.md +++ b/examples/2.4.x/server-dart/examples/domains/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -Domain result = await domains.create( +models.Domain result = await domains.create( teamId: '', domain: 'example.com', ); diff --git a/examples/2.4.x/server-dart/examples/domains/get-preset-google-workspace.md b/examples/2.4.x/server-dart/examples/domains/get-preset-google-workspace.md index da5fbfc65..6f5798d07 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-preset-google-workspace.md +++ b/examples/2.4.x/server-dart/examples/domains/get-preset-google-workspace.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.getPresetGoogleWorkspace( +models.DnsRecordsList result = await domains.getPresetGoogleWorkspace( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/get-preset-i-cloud.md b/examples/2.4.x/server-dart/examples/domains/get-preset-i-cloud.md index cde72e721..d52412a30 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-preset-i-cloud.md +++ b/examples/2.4.x/server-dart/examples/domains/get-preset-i-cloud.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.getPresetICloud( +models.DnsRecordsList result = await domains.getPresetICloud( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/get-preset-mailgun.md b/examples/2.4.x/server-dart/examples/domains/get-preset-mailgun.md index f83f3a5cf..36bb39009 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-preset-mailgun.md +++ b/examples/2.4.x/server-dart/examples/domains/get-preset-mailgun.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.getPresetMailgun( +models.DnsRecordsList result = await domains.getPresetMailgun( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/get-preset-outlook.md b/examples/2.4.x/server-dart/examples/domains/get-preset-outlook.md index ea8e4e8e2..46af4c130 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-preset-outlook.md +++ b/examples/2.4.x/server-dart/examples/domains/get-preset-outlook.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.getPresetOutlook( +models.DnsRecordsList result = await domains.getPresetOutlook( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/get-preset-proton-mail.md b/examples/2.4.x/server-dart/examples/domains/get-preset-proton-mail.md index 6f3666fbf..dbe339144 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-preset-proton-mail.md +++ b/examples/2.4.x/server-dart/examples/domains/get-preset-proton-mail.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.getPresetProtonMail( +models.DnsRecordsList result = await domains.getPresetProtonMail( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/get-preset-zoho.md b/examples/2.4.x/server-dart/examples/domains/get-preset-zoho.md index c099cd54e..1dec97be9 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-preset-zoho.md +++ b/examples/2.4.x/server-dart/examples/domains/get-preset-zoho.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.getPresetZoho( +models.DnsRecordsList result = await domains.getPresetZoho( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/get-price.md b/examples/2.4.x/server-dart/examples/domains/get-price.md index 406117219..66af0251b 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-price.md +++ b/examples/2.4.x/server-dart/examples/domains/get-price.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Domains domains = Domains(client); -DomainPrice result = await domains.getPrice( +models.DomainPrice result = await domains.getPrice( domain: 'example.com', periodYears: 0, // (optional) registrationType: enums.DomainRegistrationType.new, // (optional) diff --git a/examples/2.4.x/server-dart/examples/domains/get-record.md b/examples/2.4.x/server-dart/examples/domains/get-record.md index b453f1745..3908e0ccd 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-record.md +++ b/examples/2.4.x/server-dart/examples/domains/get-record.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.getRecord( +models.DnsRecord result = await domains.getRecord( domainId: '', recordId: '', ); diff --git a/examples/2.4.x/server-dart/examples/domains/get-transfer-status.md b/examples/2.4.x/server-dart/examples/domains/get-transfer-status.md index a8d2440a6..5fd7cc0fc 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-transfer-status.md +++ b/examples/2.4.x/server-dart/examples/domains/get-transfer-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DomainTransferStatus result = await domains.getTransferStatus( +models.DomainTransferStatus result = await domains.getTransferStatus( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/get-zone.md b/examples/2.4.x/server-dart/examples/domains/get-zone.md index b40c767eb..ff3bb6c93 100644 --- a/examples/2.4.x/server-dart/examples/domains/get-zone.md +++ b/examples/2.4.x/server-dart/examples/domains/get-zone.md @@ -8,7 +8,7 @@ Client client = Client() Domains domains = Domains(client); - result = await domains.getZone( +models. result = await domains.getZone( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/get.md b/examples/2.4.x/server-dart/examples/domains/get.md index a2483ee89..1d578e89f 100644 --- a/examples/2.4.x/server-dart/examples/domains/get.md +++ b/examples/2.4.x/server-dart/examples/domains/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -Domain result = await domains.get( +models.Domain result = await domains.get( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/domains/list-prices.md b/examples/2.4.x/server-dart/examples/domains/list-prices.md index 4b996994b..879768ff3 100644 --- a/examples/2.4.x/server-dart/examples/domains/list-prices.md +++ b/examples/2.4.x/server-dart/examples/domains/list-prices.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Domains domains = Domains(client); -DomainPricesList result = await domains.listPrices( +models.DomainPricesList result = await domains.listPrices( domains: [], periodYears: 0, // (optional) registrationType: enums.DomainRegistrationType.new, // (optional) diff --git a/examples/2.4.x/server-dart/examples/domains/list-records.md b/examples/2.4.x/server-dart/examples/domains/list-records.md index a6afdf115..e15822cc3 100644 --- a/examples/2.4.x/server-dart/examples/domains/list-records.md +++ b/examples/2.4.x/server-dart/examples/domains/list-records.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecordsList result = await domains.listRecords( +models.DnsRecordsList result = await domains.listRecords( domainId: '', queries: [], // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/domains/list.md b/examples/2.4.x/server-dart/examples/domains/list.md index fbdeeb8fc..d57227569 100644 --- a/examples/2.4.x/server-dart/examples/domains/list.md +++ b/examples/2.4.x/server-dart/examples/domains/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DomainsList result = await domains.list( +models.DomainsList result = await domains.list( queries: [], // (optional) search: '', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/domains/update-nameservers.md b/examples/2.4.x/server-dart/examples/domains/update-nameservers.md index 6b9982c43..c02167224 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-nameservers.md +++ b/examples/2.4.x/server-dart/examples/domains/update-nameservers.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -Domain result = await domains.updateNameservers( +models.Domain result = await domains.updateNameservers( domainId: '', nameservers: [], // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-a.md b/examples/2.4.x/server-dart/examples/domains/update-record-a.md index d9472fda7..f02d93b77 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-a.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-a.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordA( +models.DnsRecord result = await domains.updateRecordA( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-aaaa.md b/examples/2.4.x/server-dart/examples/domains/update-record-aaaa.md index c700d0b1b..8abf2a530 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-aaaa.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-aaaa.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordAAAA( +models.DnsRecord result = await domains.updateRecordAAAA( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-alias.md b/examples/2.4.x/server-dart/examples/domains/update-record-alias.md index cba8a9d6c..8320f3fb1 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-alias.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-alias.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordAlias( +models.DnsRecord result = await domains.updateRecordAlias( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-caa.md b/examples/2.4.x/server-dart/examples/domains/update-record-caa.md index d89330ee2..8260888f2 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-caa.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-caa.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordCAA( +models.DnsRecord result = await domains.updateRecordCAA( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-cname.md b/examples/2.4.x/server-dart/examples/domains/update-record-cname.md index 14df1937a..b2a9a52c0 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-cname.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-cname.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordCNAME( +models.DnsRecord result = await domains.updateRecordCNAME( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-https.md b/examples/2.4.x/server-dart/examples/domains/update-record-https.md index 68277ea8f..6fa34a4be 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-https.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-https.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordHTTPS( +models.DnsRecord result = await domains.updateRecordHTTPS( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-mx.md b/examples/2.4.x/server-dart/examples/domains/update-record-mx.md index c3fdd3269..6a45c2b41 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-mx.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-mx.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordMX( +models.DnsRecord result = await domains.updateRecordMX( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-ns.md b/examples/2.4.x/server-dart/examples/domains/update-record-ns.md index 841da4be6..99fd00545 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-ns.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-ns.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordNS( +models.DnsRecord result = await domains.updateRecordNS( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-srv.md b/examples/2.4.x/server-dart/examples/domains/update-record-srv.md index e870db5c5..0bc500d92 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-srv.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-srv.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordSRV( +models.DnsRecord result = await domains.updateRecordSRV( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-record-txt.md b/examples/2.4.x/server-dart/examples/domains/update-record-txt.md index 1b2e0339f..58cf9cc3b 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-record-txt.md +++ b/examples/2.4.x/server-dart/examples/domains/update-record-txt.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -DnsRecord result = await domains.updateRecordTXT( +models.DnsRecord result = await domains.updateRecordTXT( domainId: '', recordId: '', name: '', diff --git a/examples/2.4.x/server-dart/examples/domains/update-team.md b/examples/2.4.x/server-dart/examples/domains/update-team.md index c7390613d..f08ab4c2b 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-team.md +++ b/examples/2.4.x/server-dart/examples/domains/update-team.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -Domain result = await domains.updateTeam( +models.Domain result = await domains.updateTeam( domainId: '', teamId: '', ); diff --git a/examples/2.4.x/server-dart/examples/domains/update-zone.md b/examples/2.4.x/server-dart/examples/domains/update-zone.md index 70ed5724b..6ff6711ad 100644 --- a/examples/2.4.x/server-dart/examples/domains/update-zone.md +++ b/examples/2.4.x/server-dart/examples/domains/update-zone.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -Domain result = await domains.updateZone( +models.Domain result = await domains.updateZone( domainId: '', content: '', ); diff --git a/examples/2.4.x/server-dart/examples/domains/verify-nameservers.md b/examples/2.4.x/server-dart/examples/domains/verify-nameservers.md index 7af3b2a55..6609058d8 100644 --- a/examples/2.4.x/server-dart/examples/domains/verify-nameservers.md +++ b/examples/2.4.x/server-dart/examples/domains/verify-nameservers.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Domains domains = Domains(client); -Domain result = await domains.verifyNameservers( +models.Domain result = await domains.verifyNameservers( domainId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/embeddings/create-text-embeddings.md b/examples/2.4.x/server-dart/examples/embeddings/create-text-embeddings.md index 5411e16f2..a4dfbca0c 100644 --- a/examples/2.4.x/server-dart/examples/embeddings/create-text-embeddings.md +++ b/examples/2.4.x/server-dart/examples/embeddings/create-text-embeddings.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Embeddings embeddings = Embeddings(client); -EmbeddingList result = await embeddings.createTextEmbeddings( +models.EmbeddingList result = await embeddings.createTextEmbeddings( texts: ["Appwrite helps developers build applications.", "Find documents with semantic search."], model: enums.EmbeddingModel.nomicEmbedText, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/functions/create-deployment.md b/examples/2.4.x/server-dart/examples/functions/create-deployment.md index 62ac7cca5..5ee17bcef 100644 --- a/examples/2.4.x/server-dart/examples/functions/create-deployment.md +++ b/examples/2.4.x/server-dart/examples/functions/create-deployment.md @@ -1,6 +1,7 @@ ```dart import 'dart:io'; import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,7 +10,7 @@ Client client = Client() Functions functions = Functions(client); -Deployment result = await functions.createDeployment( +models.Deployment result = await functions.createDeployment( functionId: '', code: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), activate: false, diff --git a/examples/2.4.x/server-dart/examples/functions/create-duplicate-deployment.md b/examples/2.4.x/server-dart/examples/functions/create-duplicate-deployment.md index 14804895b..9e4279004 100644 --- a/examples/2.4.x/server-dart/examples/functions/create-duplicate-deployment.md +++ b/examples/2.4.x/server-dart/examples/functions/create-duplicate-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Deployment result = await functions.createDuplicateDeployment( +models.Deployment result = await functions.createDuplicateDeployment( functionId: '', deploymentId: '', buildId: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/functions/create-execution.md b/examples/2.4.x/server-dart/examples/functions/create-execution.md index 2f6ac1c33..fe581e9ea 100644 --- a/examples/2.4.x/server-dart/examples/functions/create-execution.md +++ b/examples/2.4.x/server-dart/examples/functions/create-execution.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Functions functions = Functions(client); -Execution result = await functions.createExecution( +models.Execution result = await functions.createExecution( functionId: '', body: '', // (optional) xasync: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/functions/create-template-deployment.md b/examples/2.4.x/server-dart/examples/functions/create-template-deployment.md index 1b1f5d244..20c7e5537 100644 --- a/examples/2.4.x/server-dart/examples/functions/create-template-deployment.md +++ b/examples/2.4.x/server-dart/examples/functions/create-template-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Functions functions = Functions(client); -Deployment result = await functions.createTemplateDeployment( +models.Deployment result = await functions.createTemplateDeployment( functionId: '', repository: '', owner: '', diff --git a/examples/2.4.x/server-dart/examples/functions/create-variable.md b/examples/2.4.x/server-dart/examples/functions/create-variable.md index 48d9ca801..63c56a8ca 100644 --- a/examples/2.4.x/server-dart/examples/functions/create-variable.md +++ b/examples/2.4.x/server-dart/examples/functions/create-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Variable result = await functions.createVariable( +models.Variable result = await functions.createVariable( functionId: '', variableId: '', key: '', diff --git a/examples/2.4.x/server-dart/examples/functions/create-vcs-deployment.md b/examples/2.4.x/server-dart/examples/functions/create-vcs-deployment.md index a241c80fe..e7494bb97 100644 --- a/examples/2.4.x/server-dart/examples/functions/create-vcs-deployment.md +++ b/examples/2.4.x/server-dart/examples/functions/create-vcs-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Functions functions = Functions(client); -Deployment result = await functions.createVcsDeployment( +models.Deployment result = await functions.createVcsDeployment( functionId: '', type: enums.VCSReferenceType.branch, reference: '', diff --git a/examples/2.4.x/server-dart/examples/functions/create.md b/examples/2.4.x/server-dart/examples/functions/create.md index e4eddf0bd..f0f018609 100644 --- a/examples/2.4.x/server-dart/examples/functions/create.md +++ b/examples/2.4.x/server-dart/examples/functions/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Functions functions = Functions(client); -Func result = await functions.create( +models.Func result = await functions.create( functionId: '', name: '', runtime: enums.Runtime.node145, diff --git a/examples/2.4.x/server-dart/examples/functions/get-deployment.md b/examples/2.4.x/server-dart/examples/functions/get-deployment.md index 8e3e2e28c..8d5927623 100644 --- a/examples/2.4.x/server-dart/examples/functions/get-deployment.md +++ b/examples/2.4.x/server-dart/examples/functions/get-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Deployment result = await functions.getDeployment( +models.Deployment result = await functions.getDeployment( functionId: '', deploymentId: '', ); diff --git a/examples/2.4.x/server-dart/examples/functions/get-execution.md b/examples/2.4.x/server-dart/examples/functions/get-execution.md index 1f3654845..026bc9b8a 100644 --- a/examples/2.4.x/server-dart/examples/functions/get-execution.md +++ b/examples/2.4.x/server-dart/examples/functions/get-execution.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Execution result = await functions.getExecution( +models.Execution result = await functions.getExecution( functionId: '', executionId: '', ); diff --git a/examples/2.4.x/server-dart/examples/functions/get-variable.md b/examples/2.4.x/server-dart/examples/functions/get-variable.md index ab8179e0c..e0cccdb39 100644 --- a/examples/2.4.x/server-dart/examples/functions/get-variable.md +++ b/examples/2.4.x/server-dart/examples/functions/get-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Variable result = await functions.getVariable( +models.Variable result = await functions.getVariable( functionId: '', variableId: '', ); diff --git a/examples/2.4.x/server-dart/examples/functions/get.md b/examples/2.4.x/server-dart/examples/functions/get.md index caafad0ac..f13a1062f 100644 --- a/examples/2.4.x/server-dart/examples/functions/get.md +++ b/examples/2.4.x/server-dart/examples/functions/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Func result = await functions.get( +models.Func result = await functions.get( functionId: '', ); ``` diff --git a/examples/2.4.x/server-dart/examples/functions/list-deployments.md b/examples/2.4.x/server-dart/examples/functions/list-deployments.md index 0cd7c71fb..7f917a277 100644 --- a/examples/2.4.x/server-dart/examples/functions/list-deployments.md +++ b/examples/2.4.x/server-dart/examples/functions/list-deployments.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -DeploymentList result = await functions.listDeployments( +models.DeploymentList result = await functions.listDeployments( functionId: '', queries: [], // (optional) search: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/functions/list-executions.md b/examples/2.4.x/server-dart/examples/functions/list-executions.md index deb100be0..2311592ed 100644 --- a/examples/2.4.x/server-dart/examples/functions/list-executions.md +++ b/examples/2.4.x/server-dart/examples/functions/list-executions.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -ExecutionList result = await functions.listExecutions( +models.ExecutionList result = await functions.listExecutions( functionId: '', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/functions/list-runtimes.md b/examples/2.4.x/server-dart/examples/functions/list-runtimes.md index 29b84b195..54b0520c0 100644 --- a/examples/2.4.x/server-dart/examples/functions/list-runtimes.md +++ b/examples/2.4.x/server-dart/examples/functions/list-runtimes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -RuntimeList result = await functions.listRuntimes( +models.RuntimeList result = await functions.listRuntimes( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/functions/list-specifications.md b/examples/2.4.x/server-dart/examples/functions/list-specifications.md index 07d82f311..a4270373c 100644 --- a/examples/2.4.x/server-dart/examples/functions/list-specifications.md +++ b/examples/2.4.x/server-dart/examples/functions/list-specifications.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -SpecificationList result = await functions.listSpecifications( +models.SpecificationList result = await functions.listSpecifications( type: 'runtimes', // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/functions/list-variables.md b/examples/2.4.x/server-dart/examples/functions/list-variables.md index bd07b0000..8afd47160 100644 --- a/examples/2.4.x/server-dart/examples/functions/list-variables.md +++ b/examples/2.4.x/server-dart/examples/functions/list-variables.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -VariableList result = await functions.listVariables( +models.VariableList result = await functions.listVariables( functionId: '', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/functions/list.md b/examples/2.4.x/server-dart/examples/functions/list.md index 5b5fb5711..44f0fab75 100644 --- a/examples/2.4.x/server-dart/examples/functions/list.md +++ b/examples/2.4.x/server-dart/examples/functions/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -FunctionList result = await functions.list( +models.FunctionList result = await functions.list( queries: [], // (optional) search: '', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/functions/update-deployment-status.md b/examples/2.4.x/server-dart/examples/functions/update-deployment-status.md index 7c8d0cb8e..eeaf6345f 100644 --- a/examples/2.4.x/server-dart/examples/functions/update-deployment-status.md +++ b/examples/2.4.x/server-dart/examples/functions/update-deployment-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Deployment result = await functions.updateDeploymentStatus( +models.Deployment result = await functions.updateDeploymentStatus( functionId: '', deploymentId: '', ); diff --git a/examples/2.4.x/server-dart/examples/functions/update-function-deployment.md b/examples/2.4.x/server-dart/examples/functions/update-function-deployment.md index 2fd5848b8..e6f4ce3db 100644 --- a/examples/2.4.x/server-dart/examples/functions/update-function-deployment.md +++ b/examples/2.4.x/server-dart/examples/functions/update-function-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Func result = await functions.updateFunctionDeployment( +models.Func result = await functions.updateFunctionDeployment( functionId: '', deploymentId: '', ); diff --git a/examples/2.4.x/server-dart/examples/functions/update-variable.md b/examples/2.4.x/server-dart/examples/functions/update-variable.md index e933473f6..e57065d5b 100644 --- a/examples/2.4.x/server-dart/examples/functions/update-variable.md +++ b/examples/2.4.x/server-dart/examples/functions/update-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Functions functions = Functions(client); -Variable result = await functions.updateVariable( +models.Variable result = await functions.updateVariable( functionId: '', variableId: '', key: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/functions/update.md b/examples/2.4.x/server-dart/examples/functions/update.md index 90277742c..53c0b0249 100644 --- a/examples/2.4.x/server-dart/examples/functions/update.md +++ b/examples/2.4.x/server-dart/examples/functions/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Functions functions = Functions(client); -Func result = await functions.update( +models.Func result = await functions.update( functionId: '', name: '', runtime: enums.Runtime.node145, // (optional) diff --git a/examples/2.4.x/server-dart/examples/graphql/mutation.md b/examples/2.4.x/server-dart/examples/graphql/mutation.md index 36c626508..0e66292ed 100644 --- a/examples/2.4.x/server-dart/examples/graphql/mutation.md +++ b/examples/2.4.x/server-dart/examples/graphql/mutation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Graphql graphql = Graphql(client); -Any result = await graphql.mutation( +models.Any result = await graphql.mutation( query: { "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" }, diff --git a/examples/2.4.x/server-dart/examples/graphql/query.md b/examples/2.4.x/server-dart/examples/graphql/query.md index 2d40bd78a..d085e28fc 100644 --- a/examples/2.4.x/server-dart/examples/graphql/query.md +++ b/examples/2.4.x/server-dart/examples/graphql/query.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Graphql graphql = Graphql(client); -Any result = await graphql.query( +models.Any result = await graphql.query( query: { "query": "query { localeGet { ip } }" }, diff --git a/examples/2.4.x/server-dart/examples/locale/get.md b/examples/2.4.x/server-dart/examples/locale/get.md index e8d5a6e5f..8665a7264 100644 --- a/examples/2.4.x/server-dart/examples/locale/get.md +++ b/examples/2.4.x/server-dart/examples/locale/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Locale locale = Locale(client); -Locale result = await locale.get(); +models.Locale result = await locale.get(); ``` diff --git a/examples/2.4.x/server-dart/examples/locale/list-codes.md b/examples/2.4.x/server-dart/examples/locale/list-codes.md index 7b7530184..a7ea170ee 100644 --- a/examples/2.4.x/server-dart/examples/locale/list-codes.md +++ b/examples/2.4.x/server-dart/examples/locale/list-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Locale locale = Locale(client); -LocaleCodeList result = await locale.listCodes( +models.LocaleCodeList result = await locale.listCodes( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/locale/list-continents.md b/examples/2.4.x/server-dart/examples/locale/list-continents.md index 09de6d83e..750b08029 100644 --- a/examples/2.4.x/server-dart/examples/locale/list-continents.md +++ b/examples/2.4.x/server-dart/examples/locale/list-continents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Locale locale = Locale(client); -ContinentList result = await locale.listContinents( +models.ContinentList result = await locale.listContinents( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/locale/list-countries-eu.md b/examples/2.4.x/server-dart/examples/locale/list-countries-eu.md index cd49b0bd5..dcb1429c7 100644 --- a/examples/2.4.x/server-dart/examples/locale/list-countries-eu.md +++ b/examples/2.4.x/server-dart/examples/locale/list-countries-eu.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Locale locale = Locale(client); -CountryList result = await locale.listCountriesEU( +models.CountryList result = await locale.listCountriesEU( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/locale/list-countries-phones.md b/examples/2.4.x/server-dart/examples/locale/list-countries-phones.md index 771b6e5cd..8d6da28a6 100644 --- a/examples/2.4.x/server-dart/examples/locale/list-countries-phones.md +++ b/examples/2.4.x/server-dart/examples/locale/list-countries-phones.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Locale locale = Locale(client); -PhoneList result = await locale.listCountriesPhones( +models.PhoneList result = await locale.listCountriesPhones( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/locale/list-countries.md b/examples/2.4.x/server-dart/examples/locale/list-countries.md index 207732cde..6bd97cbba 100644 --- a/examples/2.4.x/server-dart/examples/locale/list-countries.md +++ b/examples/2.4.x/server-dart/examples/locale/list-countries.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Locale locale = Locale(client); -CountryList result = await locale.listCountries( +models.CountryList result = await locale.listCountries( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/locale/list-currencies.md b/examples/2.4.x/server-dart/examples/locale/list-currencies.md index 8bc09de28..c6a41239c 100644 --- a/examples/2.4.x/server-dart/examples/locale/list-currencies.md +++ b/examples/2.4.x/server-dart/examples/locale/list-currencies.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Locale locale = Locale(client); -CurrencyList result = await locale.listCurrencies( +models.CurrencyList result = await locale.listCurrencies( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/locale/list-languages.md b/examples/2.4.x/server-dart/examples/locale/list-languages.md index 2142de0bf..4599c09fe 100644 --- a/examples/2.4.x/server-dart/examples/locale/list-languages.md +++ b/examples/2.4.x/server-dart/examples/locale/list-languages.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Locale locale = Locale(client); -LanguageList result = await locale.listLanguages( +models.LanguageList result = await locale.listLanguages( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/messaging/create-apns-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-apns-provider.md index 5ccf6f764..b0926980d 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-apns-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-apns-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createAPNSProvider( +models.Provider result = await messaging.createAPNSProvider( providerId: '', name: '', authKey: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-appwrite-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-appwrite-provider.md index a7036ff5a..def33da74 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-appwrite-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-appwrite-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createAppwriteProvider( +models.Provider result = await messaging.createAppwriteProvider( providerId: '', name: '', enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-email.md b/examples/2.4.x/server-dart/examples/messaging/create-email.md index d8bb495c9..43aa35059 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-email.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-email.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Message result = await messaging.createEmail( +models.Message result = await messaging.createEmail( messageId: '', subject: '', content: '', diff --git a/examples/2.4.x/server-dart/examples/messaging/create-fcm-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-fcm-provider.md index 93a224593..af0dfff17 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-fcm-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-fcm-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createFCMProvider( +models.Provider result = await messaging.createFCMProvider( providerId: '', name: '', serviceAccountJSON: {}, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-mailgun-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-mailgun-provider.md index 5661c2081..44f13bf08 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-mailgun-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-mailgun-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createMailgunProvider( +models.Provider result = await messaging.createMailgunProvider( providerId: '', name: '', apiKey: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-msg-91-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-msg-91-provider.md index b6b919f51..feb3db52f 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-msg-91-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-msg-91-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createMsg91Provider( +models.Provider result = await messaging.createMsg91Provider( providerId: '', name: '', templateId: '', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-push.md b/examples/2.4.x/server-dart/examples/messaging/create-push.md index 0518f55f5..a54243578 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-push.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-push.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Message result = await messaging.createPush( +models.Message result = await messaging.createPush( messageId: '', title: '', // (optional) body: '<BODY>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-resend-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-resend-provider.md index 6ce3fb47f..901c48a03 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-resend-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-resend-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createResendProvider( +models.Provider result = await messaging.createResendProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', apiKey: '<API_KEY>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-sendgrid-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-sendgrid-provider.md index 376bf8ccb..52a71280e 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-sendgrid-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-sendgrid-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createSendgridProvider( +models.Provider result = await messaging.createSendgridProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', apiKey: '<API_KEY>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-ses-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-ses-provider.md index 254166c12..c7b37c78d 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-ses-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-ses-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createSesProvider( +models.Provider result = await messaging.createSesProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', accessKey: '<ACCESS_KEY>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-sms.md b/examples/2.4.x/server-dart/examples/messaging/create-sms.md index 01591f571..160653f9b 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-sms.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-sms.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Message result = await messaging.createSMS( +models.Message result = await messaging.createSMS( messageId: '<MESSAGE_ID>', content: '<CONTENT>', topics: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-smtp-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-smtp-provider.md index 60f6082af..cbe6893a8 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-smtp-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-smtp-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createSMTPProvider( +models.Provider result = await messaging.createSMTPProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', host: '<HOST>', diff --git a/examples/2.4.x/server-dart/examples/messaging/create-subscriber.md b/examples/2.4.x/server-dart/examples/messaging/create-subscriber.md index cd9e9a43b..7466e6883 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-subscriber.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-subscriber.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Subscriber result = await messaging.createSubscriber( +models.Subscriber result = await messaging.createSubscriber( topicId: '<TOPIC_ID>', subscriberId: '<SUBSCRIBER_ID>', targetId: '<TARGET_ID>', diff --git a/examples/2.4.x/server-dart/examples/messaging/create-telesign-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-telesign-provider.md index 0e86c2d83..6e677c6ac 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-telesign-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-telesign-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createTelesignProvider( +models.Provider result = await messaging.createTelesignProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', from: '+12065550100', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-textmagic-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-textmagic-provider.md index 88086ee51..7de45ed27 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-textmagic-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-textmagic-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createTextmagicProvider( +models.Provider result = await messaging.createTextmagicProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', from: '+12065550100', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-topic.md b/examples/2.4.x/server-dart/examples/messaging/create-topic.md index 6d8b62b36..0f062a693 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-topic.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-topic.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Topic result = await messaging.createTopic( +models.Topic result = await messaging.createTopic( topicId: '<TOPIC_ID>', name: '<NAME>', subscribe: ["any"], // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-twilio-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-twilio-provider.md index bd046dcc2..a2d2b05cb 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-twilio-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-twilio-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createTwilioProvider( +models.Provider result = await messaging.createTwilioProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', from: '<FROM>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/create-vonage-provider.md b/examples/2.4.x/server-dart/examples/messaging/create-vonage-provider.md index cb372b787..c753bba2c 100644 --- a/examples/2.4.x/server-dart/examples/messaging/create-vonage-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/create-vonage-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.createVonageProvider( +models.Provider result = await messaging.createVonageProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', from: '+12065550100', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/get-message.md b/examples/2.4.x/server-dart/examples/messaging/get-message.md index 6030ab411..fc648d58b 100644 --- a/examples/2.4.x/server-dart/examples/messaging/get-message.md +++ b/examples/2.4.x/server-dart/examples/messaging/get-message.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Message result = await messaging.getMessage( +models.Message result = await messaging.getMessage( messageId: '<MESSAGE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/messaging/get-provider.md b/examples/2.4.x/server-dart/examples/messaging/get-provider.md index b9978e124..df29ba89c 100644 --- a/examples/2.4.x/server-dart/examples/messaging/get-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/get-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.getProvider( +models.Provider result = await messaging.getProvider( providerId: '<PROVIDER_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/messaging/get-subscriber.md b/examples/2.4.x/server-dart/examples/messaging/get-subscriber.md index 4866ec406..43525128d 100644 --- a/examples/2.4.x/server-dart/examples/messaging/get-subscriber.md +++ b/examples/2.4.x/server-dart/examples/messaging/get-subscriber.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Subscriber result = await messaging.getSubscriber( +models.Subscriber result = await messaging.getSubscriber( topicId: '<TOPIC_ID>', subscriberId: '<SUBSCRIBER_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/messaging/get-topic.md b/examples/2.4.x/server-dart/examples/messaging/get-topic.md index 9bde98187..db395ac11 100644 --- a/examples/2.4.x/server-dart/examples/messaging/get-topic.md +++ b/examples/2.4.x/server-dart/examples/messaging/get-topic.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Topic result = await messaging.getTopic( +models.Topic result = await messaging.getTopic( topicId: '<TOPIC_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/messaging/list-messages.md b/examples/2.4.x/server-dart/examples/messaging/list-messages.md index cb43477f4..b46db0355 100644 --- a/examples/2.4.x/server-dart/examples/messaging/list-messages.md +++ b/examples/2.4.x/server-dart/examples/messaging/list-messages.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -MessageList result = await messaging.listMessages( +models.MessageList result = await messaging.listMessages( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/list-providers.md b/examples/2.4.x/server-dart/examples/messaging/list-providers.md index 3fb8e6ffc..a33c4d5b0 100644 --- a/examples/2.4.x/server-dart/examples/messaging/list-providers.md +++ b/examples/2.4.x/server-dart/examples/messaging/list-providers.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -ProviderList result = await messaging.listProviders( +models.ProviderList result = await messaging.listProviders( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/list-subscribers.md b/examples/2.4.x/server-dart/examples/messaging/list-subscribers.md index 6a876a7c3..0e9ec5bed 100644 --- a/examples/2.4.x/server-dart/examples/messaging/list-subscribers.md +++ b/examples/2.4.x/server-dart/examples/messaging/list-subscribers.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -SubscriberList result = await messaging.listSubscribers( +models.SubscriberList result = await messaging.listSubscribers( topicId: '<TOPIC_ID>', queries: [], // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/list-targets.md b/examples/2.4.x/server-dart/examples/messaging/list-targets.md index 6f0225e19..b292c0a71 100644 --- a/examples/2.4.x/server-dart/examples/messaging/list-targets.md +++ b/examples/2.4.x/server-dart/examples/messaging/list-targets.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -TargetList result = await messaging.listTargets( +models.TargetList result = await messaging.listTargets( messageId: '<MESSAGE_ID>', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/list-topics.md b/examples/2.4.x/server-dart/examples/messaging/list-topics.md index 7147c2d0d..f463d2153 100644 --- a/examples/2.4.x/server-dart/examples/messaging/list-topics.md +++ b/examples/2.4.x/server-dart/examples/messaging/list-topics.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -TopicList result = await messaging.listTopics( +models.TopicList result = await messaging.listTopics( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-apns-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-apns-provider.md index 47e714d5c..1527e5154 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-apns-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-apns-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateAPNSProvider( +models.Provider result = await messaging.updateAPNSProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-appwrite-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-appwrite-provider.md index c9b8228f9..0a4e45786 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-appwrite-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-appwrite-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateAppwriteProvider( +models.Provider result = await messaging.updateAppwriteProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-email.md b/examples/2.4.x/server-dart/examples/messaging/update-email.md index 479d97fbb..d5e4977dd 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-email.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-email.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Message result = await messaging.updateEmail( +models.Message result = await messaging.updateEmail( messageId: '<MESSAGE_ID>', subject: '<SUBJECT>', // (optional) content: '<CONTENT>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-fcm-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-fcm-provider.md index 522466176..03e18ad8c 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-fcm-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-fcm-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateFCMProvider( +models.Provider result = await messaging.updateFCMProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-mailgun-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-mailgun-provider.md index 447f0898b..1246bbd25 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-mailgun-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-mailgun-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateMailgunProvider( +models.Provider result = await messaging.updateMailgunProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) apiKey: '<API_KEY>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-msg-91-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-msg-91-provider.md index 37a0a5673..3aa9846c4 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-msg-91-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-msg-91-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateMsg91Provider( +models.Provider result = await messaging.updateMsg91Provider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-push.md b/examples/2.4.x/server-dart/examples/messaging/update-push.md index a376cd7de..0ef6c36ad 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-push.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-push.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Message result = await messaging.updatePush( +models.Message result = await messaging.updatePush( messageId: '<MESSAGE_ID>', title: '<TITLE>', // (optional) body: '<BODY>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-resend-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-resend-provider.md index 6af01550d..9cee2c40b 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-resend-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-resend-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateResendProvider( +models.Provider result = await messaging.updateResendProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-sendgrid-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-sendgrid-provider.md index 3cfbe82b0..1dd9fa75e 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-sendgrid-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-sendgrid-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateSendgridProvider( +models.Provider result = await messaging.updateSendgridProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-ses-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-ses-provider.md index a2e100752..0593cc4cb 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-ses-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-ses-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateSesProvider( +models.Provider result = await messaging.updateSesProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-sms.md b/examples/2.4.x/server-dart/examples/messaging/update-sms.md index 4b0456135..d0578b6f6 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-sms.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-sms.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Message result = await messaging.updateSMS( +models.Message result = await messaging.updateSMS( messageId: '<MESSAGE_ID>', content: '<CONTENT>', // (optional) topics: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-smtp-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-smtp-provider.md index e88708cf0..391ee29ba 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-smtp-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-smtp-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateSMTPProvider( +models.Provider result = await messaging.updateSMTPProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) host: '<HOST>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-telesign-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-telesign-provider.md index cc1759931..ba482b0c1 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-telesign-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-telesign-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateTelesignProvider( +models.Provider result = await messaging.updateTelesignProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-textmagic-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-textmagic-provider.md index 2eaff5353..f7bb719a7 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-textmagic-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-textmagic-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateTextmagicProvider( +models.Provider result = await messaging.updateTextmagicProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-topic.md b/examples/2.4.x/server-dart/examples/messaging/update-topic.md index 2c6bbc7ec..7ae8917a5 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-topic.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-topic.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Topic result = await messaging.updateTopic( +models.Topic result = await messaging.updateTopic( topicId: '<TOPIC_ID>', name: '<NAME>', // (optional) subscribe: ["any"], // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-twilio-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-twilio-provider.md index d177d8718..d17958aa8 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-twilio-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-twilio-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateTwilioProvider( +models.Provider result = await messaging.updateTwilioProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/messaging/update-vonage-provider.md b/examples/2.4.x/server-dart/examples/messaging/update-vonage-provider.md index ca1228067..5023e8c25 100644 --- a/examples/2.4.x/server-dart/examples/messaging/update-vonage-provider.md +++ b/examples/2.4.x/server-dart/examples/messaging/update-vonage-provider.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Messaging messaging = Messaging(client); -Provider result = await messaging.updateVonageProvider( +models.Provider result = await messaging.updateVonageProvider( providerId: '<PROVIDER_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/mongo/create-backup-policy.md b/examples/2.4.x/server-dart/examples/mongo/create-backup-policy.md index 0efcccd8c..a9846d7bc 100644 --- a/examples/2.4.x/server-dart/examples/mongo/create-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/mongo/create-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -BackupPolicy result = await mongo.createBackupPolicy( +models.BackupPolicy result = await mongo.createBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', name: '<NAME>', diff --git a/examples/2.4.x/server-dart/examples/mongo/create-backup.md b/examples/2.4.x/server-dart/examples/mongo/create-backup.md index cb53c3b6e..e1aff9c32 100644 --- a/examples/2.4.x/server-dart/examples/mongo/create-backup.md +++ b/examples/2.4.x/server-dart/examples/mongo/create-backup.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseBackup result = await mongo.createBackup( +models.DedicatedDatabaseBackup result = await mongo.createBackup( databaseId: '<DATABASE_ID>', type: 'full', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/mongo/create-branch.md b/examples/2.4.x/server-dart/examples/mongo/create-branch.md index 044e96ede..142d4a1d9 100644 --- a/examples/2.4.x/server-dart/examples/mongo/create-branch.md +++ b/examples/2.4.x/server-dart/examples/mongo/create-branch.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabase result = await mongo.createBranch( +models.DedicatedDatabase result = await mongo.createBranch( databaseId: '<DATABASE_ID>', branchId: '<BRANCH_ID>', // (optional) ttl: 300, // (optional) diff --git a/examples/2.4.x/server-dart/examples/mongo/create-failover.md b/examples/2.4.x/server-dart/examples/mongo/create-failover.md index 64e936e81..f174cacb1 100644 --- a/examples/2.4.x/server-dart/examples/mongo/create-failover.md +++ b/examples/2.4.x/server-dart/examples/mongo/create-failover.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabase result = await mongo.createFailover( +models.DedicatedDatabase result = await mongo.createFailover( databaseId: '<DATABASE_ID>', targetReplicaId: '<TARGET_REPLICA_ID>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/mongo/create-migration.md b/examples/2.4.x/server-dart/examples/mongo/create-migration.md index ac759660f..ad25aa47d 100644 --- a/examples/2.4.x/server-dart/examples/mongo/create-migration.md +++ b/examples/2.4.x/server-dart/examples/mongo/create-migration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabase result = await mongo.createMigration( +models.DedicatedDatabase result = await mongo.createMigration( databaseId: '<DATABASE_ID>', targetType: 'shared', specification: '<SPECIFICATION>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mongo/create-restoration.md b/examples/2.4.x/server-dart/examples/mongo/create-restoration.md index 43da75566..737778008 100644 --- a/examples/2.4.x/server-dart/examples/mongo/create-restoration.md +++ b/examples/2.4.x/server-dart/examples/mongo/create-restoration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseRestoration result = await mongo.createRestoration( +models.DedicatedDatabaseRestoration result = await mongo.createRestoration( databaseId: '<DATABASE_ID>', type: 'backup', // (optional) backupId: '<BACKUP_ID>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mongo/create-upgrade.md b/examples/2.4.x/server-dart/examples/mongo/create-upgrade.md index 8ef5f48e4..aea2b2e65 100644 --- a/examples/2.4.x/server-dart/examples/mongo/create-upgrade.md +++ b/examples/2.4.x/server-dart/examples/mongo/create-upgrade.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabase result = await mongo.createUpgrade( +models.DedicatedDatabase result = await mongo.createUpgrade( databaseId: '<DATABASE_ID>', targetVersion: '<TARGET_VERSION>', ); diff --git a/examples/2.4.x/server-dart/examples/mongo/create.md b/examples/2.4.x/server-dart/examples/mongo/create.md index 621abdc59..50b446e30 100644 --- a/examples/2.4.x/server-dart/examples/mongo/create.md +++ b/examples/2.4.x/server-dart/examples/mongo/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabase result = await mongo.create( +models.DedicatedDatabase result = await mongo.create( databaseId: '<DATABASE_ID>', name: '<NAME>', version: '17', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mongo/get-backup-policy.md b/examples/2.4.x/server-dart/examples/mongo/get-backup-policy.md index 3113592ea..47a5647fd 100644 --- a/examples/2.4.x/server-dart/examples/mongo/get-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/mongo/get-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -BackupPolicy result = await mongo.getBackupPolicy( +models.BackupPolicy result = await mongo.getBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/mongo/get-backup.md b/examples/2.4.x/server-dart/examples/mongo/get-backup.md index 8c201b4a5..9e5fb83d7 100644 --- a/examples/2.4.x/server-dart/examples/mongo/get-backup.md +++ b/examples/2.4.x/server-dart/examples/mongo/get-backup.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseBackup result = await mongo.getBackup( +models.DedicatedDatabaseBackup result = await mongo.getBackup( databaseId: '<DATABASE_ID>', backupId: '<BACKUP_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/mongo/get-pitr.md b/examples/2.4.x/server-dart/examples/mongo/get-pitr.md index 84ec4a3cb..ceb70999c 100644 --- a/examples/2.4.x/server-dart/examples/mongo/get-pitr.md +++ b/examples/2.4.x/server-dart/examples/mongo/get-pitr.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabasePITRWindows result = await mongo.getPitr( +models.DedicatedDatabasePITRWindows result = await mongo.getPitr( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mongo/get-replicas.md b/examples/2.4.x/server-dart/examples/mongo/get-replicas.md index 76a117303..00a5ec583 100644 --- a/examples/2.4.x/server-dart/examples/mongo/get-replicas.md +++ b/examples/2.4.x/server-dart/examples/mongo/get-replicas.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseReplicas result = await mongo.getReplicas( +models.DedicatedDatabaseReplicas result = await mongo.getReplicas( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mongo/get-restoration.md b/examples/2.4.x/server-dart/examples/mongo/get-restoration.md index 78669fe7d..f9182db03 100644 --- a/examples/2.4.x/server-dart/examples/mongo/get-restoration.md +++ b/examples/2.4.x/server-dart/examples/mongo/get-restoration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseRestoration result = await mongo.getRestoration( +models.DedicatedDatabaseRestoration result = await mongo.getRestoration( databaseId: '<DATABASE_ID>', restorationId: '<RESTORATION_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/mongo/get-status.md b/examples/2.4.x/server-dart/examples/mongo/get-status.md index f6e40b90a..999337e68 100644 --- a/examples/2.4.x/server-dart/examples/mongo/get-status.md +++ b/examples/2.4.x/server-dart/examples/mongo/get-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DatabaseStatus result = await mongo.getStatus( +models.DatabaseStatus result = await mongo.getStatus( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mongo/get.md b/examples/2.4.x/server-dart/examples/mongo/get.md index fd43d08df..c3e4b19d8 100644 --- a/examples/2.4.x/server-dart/examples/mongo/get.md +++ b/examples/2.4.x/server-dart/examples/mongo/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabase result = await mongo.get( +models.DedicatedDatabase result = await mongo.get( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mongo/list-backup-policies.md b/examples/2.4.x/server-dart/examples/mongo/list-backup-policies.md index 6b44970de..f6df734ab 100644 --- a/examples/2.4.x/server-dart/examples/mongo/list-backup-policies.md +++ b/examples/2.4.x/server-dart/examples/mongo/list-backup-policies.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -BackupPolicyList result = await mongo.listBackupPolicies( +models.BackupPolicyList result = await mongo.listBackupPolicies( databaseId: '<DATABASE_ID>', queries: [], // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/mongo/list-backups.md b/examples/2.4.x/server-dart/examples/mongo/list-backups.md index f8f69df84..9a41ae69e 100644 --- a/examples/2.4.x/server-dart/examples/mongo/list-backups.md +++ b/examples/2.4.x/server-dart/examples/mongo/list-backups.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseBackupList result = await mongo.listBackups( +models.DedicatedDatabaseBackupList result = await mongo.listBackups( databaseId: '<DATABASE_ID>', queries: [], // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/mongo/list-branches.md b/examples/2.4.x/server-dart/examples/mongo/list-branches.md index 3062bf23e..725fb5444 100644 --- a/examples/2.4.x/server-dart/examples/mongo/list-branches.md +++ b/examples/2.4.x/server-dart/examples/mongo/list-branches.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseBranchList result = await mongo.listBranches( +models.DedicatedDatabaseBranchList result = await mongo.listBranches( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mongo/list-operations.md b/examples/2.4.x/server-dart/examples/mongo/list-operations.md index c259e8565..f2ff11d6c 100644 --- a/examples/2.4.x/server-dart/examples/mongo/list-operations.md +++ b/examples/2.4.x/server-dart/examples/mongo/list-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseOperationList result = await mongo.listOperations( +models.DedicatedDatabaseOperationList result = await mongo.listOperations( databaseId: '<DATABASE_ID>', status: 'queued', // (optional) limit: 1, // (optional) diff --git a/examples/2.4.x/server-dart/examples/mongo/list-restorations.md b/examples/2.4.x/server-dart/examples/mongo/list-restorations.md index 29cac9749..ccdbd7393 100644 --- a/examples/2.4.x/server-dart/examples/mongo/list-restorations.md +++ b/examples/2.4.x/server-dart/examples/mongo/list-restorations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseRestorationList result = await mongo.listRestorations( +models.DedicatedDatabaseRestorationList result = await mongo.listRestorations( databaseId: '<DATABASE_ID>', status: 'pending', // (optional) type: 'backup', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mongo/list-specifications.md b/examples/2.4.x/server-dart/examples/mongo/list-specifications.md index dba786c2b..4393bd389 100644 --- a/examples/2.4.x/server-dart/examples/mongo/list-specifications.md +++ b/examples/2.4.x/server-dart/examples/mongo/list-specifications.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseSpecificationList result = await mongo.listSpecifications(); +models.DedicatedDatabaseSpecificationList result = await mongo.listSpecifications(); ``` diff --git a/examples/2.4.x/server-dart/examples/mongo/list.md b/examples/2.4.x/server-dart/examples/mongo/list.md index 17b7ccac1..8b83f667a 100644 --- a/examples/2.4.x/server-dart/examples/mongo/list.md +++ b/examples/2.4.x/server-dart/examples/mongo/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseList result = await mongo.list( +models.DedicatedDatabaseList result = await mongo.list( queries: [], // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/mongo/update-backup-policy.md b/examples/2.4.x/server-dart/examples/mongo/update-backup-policy.md index 5af9db4ee..9582e732f 100644 --- a/examples/2.4.x/server-dart/examples/mongo/update-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/mongo/update-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -BackupPolicy result = await mongo.updateBackupPolicy( +models.BackupPolicy result = await mongo.updateBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', name: '<NAME>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mongo/update-backup-storage.md b/examples/2.4.x/server-dart/examples/mongo/update-backup-storage.md index ddba9cc28..a61e26a6b 100644 --- a/examples/2.4.x/server-dart/examples/mongo/update-backup-storage.md +++ b/examples/2.4.x/server-dart/examples/mongo/update-backup-storage.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseBackupStorage result = await mongo.updateBackupStorage( +models.DedicatedDatabaseBackupStorage result = await mongo.updateBackupStorage( databaseId: '<DATABASE_ID>', provider: 's3', bucket: '<BUCKET>', diff --git a/examples/2.4.x/server-dart/examples/mongo/update-credentials.md b/examples/2.4.x/server-dart/examples/mongo/update-credentials.md index 42ba1c519..047a6c18f 100644 --- a/examples/2.4.x/server-dart/examples/mongo/update-credentials.md +++ b/examples/2.4.x/server-dart/examples/mongo/update-credentials.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabaseOperation result = await mongo.updateCredentials( +models.DedicatedDatabaseOperation result = await mongo.updateCredentials( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mongo/update-maintenance.md b/examples/2.4.x/server-dart/examples/mongo/update-maintenance.md index 88b166ceb..6518d5681 100644 --- a/examples/2.4.x/server-dart/examples/mongo/update-maintenance.md +++ b/examples/2.4.x/server-dart/examples/mongo/update-maintenance.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabase result = await mongo.updateMaintenance( +models.DedicatedDatabase result = await mongo.updateMaintenance( databaseId: '<DATABASE_ID>', day: 'sun', hourUtc: 0, diff --git a/examples/2.4.x/server-dart/examples/mongo/update.md b/examples/2.4.x/server-dart/examples/mongo/update.md index 5831361c0..d0376d999 100644 --- a/examples/2.4.x/server-dart/examples/mongo/update.md +++ b/examples/2.4.x/server-dart/examples/mongo/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mongo mongo = Mongo(client); -DedicatedDatabase result = await mongo.update( +models.DedicatedDatabase result = await mongo.update( databaseId: '<DATABASE_ID>', name: '<NAME>', // (optional) status: 'ready', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/create-backup-policy.md b/examples/2.4.x/server-dart/examples/mysql/create-backup-policy.md index 2e2fa68c7..1d8db3175 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/mysql/create-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -BackupPolicy result = await mysql.createBackupPolicy( +models.BackupPolicy result = await mysql.createBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', name: '<NAME>', diff --git a/examples/2.4.x/server-dart/examples/mysql/create-backup.md b/examples/2.4.x/server-dart/examples/mysql/create-backup.md index b8b9d561d..584c6da3b 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create-backup.md +++ b/examples/2.4.x/server-dart/examples/mysql/create-backup.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseBackup result = await mysql.createBackup( +models.DedicatedDatabaseBackup result = await mysql.createBackup( databaseId: '<DATABASE_ID>', type: 'full', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/mysql/create-branch.md b/examples/2.4.x/server-dart/examples/mysql/create-branch.md index d97606faf..dacc5f155 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create-branch.md +++ b/examples/2.4.x/server-dart/examples/mysql/create-branch.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabase result = await mysql.createBranch( +models.DedicatedDatabase result = await mysql.createBranch( databaseId: '<DATABASE_ID>', branchId: '<BRANCH_ID>', // (optional) ttl: 300, // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/create-execution.md b/examples/2.4.x/server-dart/examples/mysql/create-execution.md index 23b628d33..8b575845f 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create-execution.md +++ b/examples/2.4.x/server-dart/examples/mysql/create-execution.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseExecution result = await mysql.createExecution( +models.DedicatedDatabaseExecution result = await mysql.createExecution( databaseId: '<DATABASE_ID>', sql: '<SQL>', bindings: {}, // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/create-failover.md b/examples/2.4.x/server-dart/examples/mysql/create-failover.md index e2153c15a..5a6257eef 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create-failover.md +++ b/examples/2.4.x/server-dart/examples/mysql/create-failover.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabase result = await mysql.createFailover( +models.DedicatedDatabase result = await mysql.createFailover( databaseId: '<DATABASE_ID>', targetReplicaId: '<TARGET_REPLICA_ID>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/mysql/create-migration.md b/examples/2.4.x/server-dart/examples/mysql/create-migration.md index 8f8992067..50fe9e88c 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create-migration.md +++ b/examples/2.4.x/server-dart/examples/mysql/create-migration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabase result = await mysql.createMigration( +models.DedicatedDatabase result = await mysql.createMigration( databaseId: '<DATABASE_ID>', targetType: 'shared', specification: '<SPECIFICATION>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/create-restoration.md b/examples/2.4.x/server-dart/examples/mysql/create-restoration.md index 4806fab28..4403f6231 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create-restoration.md +++ b/examples/2.4.x/server-dart/examples/mysql/create-restoration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseRestoration result = await mysql.createRestoration( +models.DedicatedDatabaseRestoration result = await mysql.createRestoration( databaseId: '<DATABASE_ID>', type: 'backup', // (optional) backupId: '<BACKUP_ID>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/create-upgrade.md b/examples/2.4.x/server-dart/examples/mysql/create-upgrade.md index bc99122b4..ed699f704 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create-upgrade.md +++ b/examples/2.4.x/server-dart/examples/mysql/create-upgrade.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabase result = await mysql.createUpgrade( +models.DedicatedDatabase result = await mysql.createUpgrade( databaseId: '<DATABASE_ID>', targetVersion: '<TARGET_VERSION>', ); diff --git a/examples/2.4.x/server-dart/examples/mysql/create.md b/examples/2.4.x/server-dart/examples/mysql/create.md index 3ba351d47..9f9d5c218 100644 --- a/examples/2.4.x/server-dart/examples/mysql/create.md +++ b/examples/2.4.x/server-dart/examples/mysql/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabase result = await mysql.create( +models.DedicatedDatabase result = await mysql.create( databaseId: '<DATABASE_ID>', name: '<NAME>', version: '17', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/get-backup-policy.md b/examples/2.4.x/server-dart/examples/mysql/get-backup-policy.md index e13c417f3..cab65c2a1 100644 --- a/examples/2.4.x/server-dart/examples/mysql/get-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/mysql/get-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -BackupPolicy result = await mysql.getBackupPolicy( +models.BackupPolicy result = await mysql.getBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/mysql/get-backup.md b/examples/2.4.x/server-dart/examples/mysql/get-backup.md index 328431b03..d915fe505 100644 --- a/examples/2.4.x/server-dart/examples/mysql/get-backup.md +++ b/examples/2.4.x/server-dart/examples/mysql/get-backup.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseBackup result = await mysql.getBackup( +models.DedicatedDatabaseBackup result = await mysql.getBackup( databaseId: '<DATABASE_ID>', backupId: '<BACKUP_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/mysql/get-pitr.md b/examples/2.4.x/server-dart/examples/mysql/get-pitr.md index 1c781fb28..099b82ef0 100644 --- a/examples/2.4.x/server-dart/examples/mysql/get-pitr.md +++ b/examples/2.4.x/server-dart/examples/mysql/get-pitr.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabasePITRWindows result = await mysql.getPitr( +models.DedicatedDatabasePITRWindows result = await mysql.getPitr( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/get-pooler.md b/examples/2.4.x/server-dart/examples/mysql/get-pooler.md index a2d05adfd..a77920e0b 100644 --- a/examples/2.4.x/server-dart/examples/mysql/get-pooler.md +++ b/examples/2.4.x/server-dart/examples/mysql/get-pooler.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabasePooler result = await mysql.getPooler( +models.DedicatedDatabasePooler result = await mysql.getPooler( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/get-replicas.md b/examples/2.4.x/server-dart/examples/mysql/get-replicas.md index 6465c5f53..95c8161f4 100644 --- a/examples/2.4.x/server-dart/examples/mysql/get-replicas.md +++ b/examples/2.4.x/server-dart/examples/mysql/get-replicas.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseReplicas result = await mysql.getReplicas( +models.DedicatedDatabaseReplicas result = await mysql.getReplicas( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/get-restoration.md b/examples/2.4.x/server-dart/examples/mysql/get-restoration.md index 70b1629ef..791e28f79 100644 --- a/examples/2.4.x/server-dart/examples/mysql/get-restoration.md +++ b/examples/2.4.x/server-dart/examples/mysql/get-restoration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseRestoration result = await mysql.getRestoration( +models.DedicatedDatabaseRestoration result = await mysql.getRestoration( databaseId: '<DATABASE_ID>', restorationId: '<RESTORATION_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/mysql/get-status.md b/examples/2.4.x/server-dart/examples/mysql/get-status.md index b8402e3ea..ba4c5fbb9 100644 --- a/examples/2.4.x/server-dart/examples/mysql/get-status.md +++ b/examples/2.4.x/server-dart/examples/mysql/get-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DatabaseStatus result = await mysql.getStatus( +models.DatabaseStatus result = await mysql.getStatus( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/get.md b/examples/2.4.x/server-dart/examples/mysql/get.md index b7ea5824b..1b8c118f4 100644 --- a/examples/2.4.x/server-dart/examples/mysql/get.md +++ b/examples/2.4.x/server-dart/examples/mysql/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabase result = await mysql.get( +models.DedicatedDatabase result = await mysql.get( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/list-backup-policies.md b/examples/2.4.x/server-dart/examples/mysql/list-backup-policies.md index a0e2a1ad1..32f30ded8 100644 --- a/examples/2.4.x/server-dart/examples/mysql/list-backup-policies.md +++ b/examples/2.4.x/server-dart/examples/mysql/list-backup-policies.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -BackupPolicyList result = await mysql.listBackupPolicies( +models.BackupPolicyList result = await mysql.listBackupPolicies( databaseId: '<DATABASE_ID>', queries: [], // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/mysql/list-backups.md b/examples/2.4.x/server-dart/examples/mysql/list-backups.md index a9a07085b..8377cce20 100644 --- a/examples/2.4.x/server-dart/examples/mysql/list-backups.md +++ b/examples/2.4.x/server-dart/examples/mysql/list-backups.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseBackupList result = await mysql.listBackups( +models.DedicatedDatabaseBackupList result = await mysql.listBackups( databaseId: '<DATABASE_ID>', queries: [], // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/mysql/list-branches.md b/examples/2.4.x/server-dart/examples/mysql/list-branches.md index c029a8012..47a100c79 100644 --- a/examples/2.4.x/server-dart/examples/mysql/list-branches.md +++ b/examples/2.4.x/server-dart/examples/mysql/list-branches.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseBranchList result = await mysql.listBranches( +models.DedicatedDatabaseBranchList result = await mysql.listBranches( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/list-operations.md b/examples/2.4.x/server-dart/examples/mysql/list-operations.md index 3464bbe8f..cf4baa902 100644 --- a/examples/2.4.x/server-dart/examples/mysql/list-operations.md +++ b/examples/2.4.x/server-dart/examples/mysql/list-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseOperationList result = await mysql.listOperations( +models.DedicatedDatabaseOperationList result = await mysql.listOperations( databaseId: '<DATABASE_ID>', status: 'queued', // (optional) limit: 1, // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/list-restorations.md b/examples/2.4.x/server-dart/examples/mysql/list-restorations.md index 4f831482f..5fcd4e8f3 100644 --- a/examples/2.4.x/server-dart/examples/mysql/list-restorations.md +++ b/examples/2.4.x/server-dart/examples/mysql/list-restorations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseRestorationList result = await mysql.listRestorations( +models.DedicatedDatabaseRestorationList result = await mysql.listRestorations( databaseId: '<DATABASE_ID>', status: 'pending', // (optional) type: 'backup', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/list-specifications.md b/examples/2.4.x/server-dart/examples/mysql/list-specifications.md index 8c195cd1c..e033e362e 100644 --- a/examples/2.4.x/server-dart/examples/mysql/list-specifications.md +++ b/examples/2.4.x/server-dart/examples/mysql/list-specifications.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseSpecificationList result = await mysql.listSpecifications(); +models.DedicatedDatabaseSpecificationList result = await mysql.listSpecifications(); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/list.md b/examples/2.4.x/server-dart/examples/mysql/list.md index 254038e8e..193745e77 100644 --- a/examples/2.4.x/server-dart/examples/mysql/list.md +++ b/examples/2.4.x/server-dart/examples/mysql/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseList result = await mysql.list( +models.DedicatedDatabaseList result = await mysql.list( queries: [], // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/update-backup-policy.md b/examples/2.4.x/server-dart/examples/mysql/update-backup-policy.md index d267616a7..07a11f47d 100644 --- a/examples/2.4.x/server-dart/examples/mysql/update-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/mysql/update-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -BackupPolicy result = await mysql.updateBackupPolicy( +models.BackupPolicy result = await mysql.updateBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', name: '<NAME>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/update-backup-storage.md b/examples/2.4.x/server-dart/examples/mysql/update-backup-storage.md index 35cbf8e37..cfb49fdb9 100644 --- a/examples/2.4.x/server-dart/examples/mysql/update-backup-storage.md +++ b/examples/2.4.x/server-dart/examples/mysql/update-backup-storage.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseBackupStorage result = await mysql.updateBackupStorage( +models.DedicatedDatabaseBackupStorage result = await mysql.updateBackupStorage( databaseId: '<DATABASE_ID>', provider: 's3', bucket: '<BUCKET>', diff --git a/examples/2.4.x/server-dart/examples/mysql/update-credentials.md b/examples/2.4.x/server-dart/examples/mysql/update-credentials.md index f06faf8fc..d1af25d4c 100644 --- a/examples/2.4.x/server-dart/examples/mysql/update-credentials.md +++ b/examples/2.4.x/server-dart/examples/mysql/update-credentials.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabaseOperation result = await mysql.updateCredentials( +models.DedicatedDatabaseOperation result = await mysql.updateCredentials( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/mysql/update-maintenance.md b/examples/2.4.x/server-dart/examples/mysql/update-maintenance.md index d93c64157..8531f8fe5 100644 --- a/examples/2.4.x/server-dart/examples/mysql/update-maintenance.md +++ b/examples/2.4.x/server-dart/examples/mysql/update-maintenance.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabase result = await mysql.updateMaintenance( +models.DedicatedDatabase result = await mysql.updateMaintenance( databaseId: '<DATABASE_ID>', day: 'sun', hourUtc: 0, diff --git a/examples/2.4.x/server-dart/examples/mysql/update-pooler.md b/examples/2.4.x/server-dart/examples/mysql/update-pooler.md index b5b125c5e..d7a0caf8a 100644 --- a/examples/2.4.x/server-dart/examples/mysql/update-pooler.md +++ b/examples/2.4.x/server-dart/examples/mysql/update-pooler.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabasePooler result = await mysql.updatePooler( +models.DedicatedDatabasePooler result = await mysql.updatePooler( databaseId: '<DATABASE_ID>', mode: 'transaction', // (optional) maxConnections: 10, // (optional) diff --git a/examples/2.4.x/server-dart/examples/mysql/update.md b/examples/2.4.x/server-dart/examples/mysql/update.md index ae08d0e2e..3670c48ea 100644 --- a/examples/2.4.x/server-dart/examples/mysql/update.md +++ b/examples/2.4.x/server-dart/examples/mysql/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Mysql mysql = Mysql(client); -DedicatedDatabase result = await mysql.update( +models.DedicatedDatabase result = await mysql.update( databaseId: '<DATABASE_ID>', name: '<NAME>', // (optional) status: 'ready', // (optional) diff --git a/examples/2.4.x/server-dart/examples/oauth2/approve.md b/examples/2.4.x/server-dart/examples/oauth2/approve.md index 786ffc5e0..0d14343e9 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/approve.md +++ b/examples/2.4.x/server-dart/examples/oauth2/approve.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Approve result = await oauth2.approve( +models.Oauth2Approve result = await oauth2.approve( grantId: '<GRANT_ID>', authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) scope: '<SCOPE>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/oauth2/authorize-post.md b/examples/2.4.x/server-dart/examples/oauth2/authorize-post.md index 09b7811d6..0dd76a289 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-dart/examples/oauth2/authorize-post.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Authorize result = await oauth2.authorizePost( +models.Oauth2Authorize result = await oauth2.authorizePost( clientId: '<CLIENT_ID>', // (optional) redirectUri: 'https://example.com', // (optional) responseType: '', // (optional) @@ -20,7 +21,7 @@ Oauth2Authorize result = await oauth2.authorizePost( prompt: '<PROMPT>', // (optional) maxAge: 0, // (optional) authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) - resource: '', // (optional) + resource: [], // (optional) audience: '<AUDIENCE>', // (optional) requestUri: '<REQUEST_URI>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/oauth2/authorize.md b/examples/2.4.x/server-dart/examples/oauth2/authorize.md index 30b19bb42..18e13acf7 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-dart/examples/oauth2/authorize.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Authorize result = await oauth2.authorize( +models.Oauth2Authorize result = await oauth2.authorize( clientId: '<CLIENT_ID>', // (optional) redirectUri: 'https://example.com', // (optional) responseType: '', // (optional) @@ -20,7 +21,7 @@ Oauth2Authorize result = await oauth2.authorize( prompt: '<PROMPT>', // (optional) maxAge: 0, // (optional) authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) - resource: '', // (optional) + resource: [], // (optional) audience: '<AUDIENCE>', // (optional) requestUri: '<REQUEST_URI>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-dart/examples/oauth2/create-device-authorization.md index 17606869e..9d10e41d3 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-dart/examples/oauth2/create-device-authorization.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,11 +9,11 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2DeviceAuthorization result = await oauth2.createDeviceAuthorization( +models.Oauth2DeviceAuthorization result = await oauth2.createDeviceAuthorization( clientId: '<CLIENT_ID>', // (optional) scope: '<SCOPE>', // (optional) authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) - resource: '', // (optional) + resource: [], // (optional) audience: '<AUDIENCE>', // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/oauth2/create-grant.md b/examples/2.4.x/server-dart/examples/oauth2/create-grant.md index 0382c6921..54cee5001 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/create-grant.md +++ b/examples/2.4.x/server-dart/examples/oauth2/create-grant.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Grant result = await oauth2.createGrant( +models.Oauth2Grant result = await oauth2.createGrant( userCode: '<USER_CODE>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/oauth2/create-par.md b/examples/2.4.x/server-dart/examples/oauth2/create-par.md index d2a58dcca..36517c04b 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-dart/examples/oauth2/create-par.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2PAR result = await oauth2.createPAR( +models.Oauth2PAR result = await oauth2.createPAR( clientId: '<CLIENT_ID>', redirectUri: 'https://example.com', responseType: 'code', @@ -20,7 +21,7 @@ Oauth2PAR result = await oauth2.createPAR( prompt: '<PROMPT>', // (optional) maxAge: 0, // (optional) authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) - resource: '', // (optional) + resource: [], // (optional) audience: '<AUDIENCE>', // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/oauth2/create-token.md b/examples/2.4.x/server-dart/examples/oauth2/create-token.md index 64551d367..0dfb9f1f4 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-dart/examples/oauth2/create-token.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Token result = await oauth2.createToken( +models.Oauth2Token result = await oauth2.createToken( grantType: '<GRANT_TYPE>', code: '<CODE>', // (optional) refreshToken: '<REFRESH_TOKEN>', // (optional) @@ -17,7 +18,7 @@ Oauth2Token result = await oauth2.createToken( clientSecret: '<CLIENT_SECRET>', // (optional) codeVerifier: '<CODE_VERIFIER>', // (optional) redirectUri: 'https://example.com', // (optional) - resource: '', // (optional) + resource: [], // (optional) audience: '<AUDIENCE>', // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/oauth2/get-grant.md b/examples/2.4.x/server-dart/examples/oauth2/get-grant.md index 3ded7e2ec..f1d306ba8 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/get-grant.md +++ b/examples/2.4.x/server-dart/examples/oauth2/get-grant.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Grant result = await oauth2.getGrant( +models.Oauth2Grant result = await oauth2.getGrant( grantId: '<GRANT_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/oauth2/introspect.md b/examples/2.4.x/server-dart/examples/oauth2/introspect.md index acb9ed0e2..377797ba3 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/introspect.md +++ b/examples/2.4.x/server-dart/examples/oauth2/introspect.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Introspection result = await oauth2.introspect( +models.Oauth2Introspection result = await oauth2.introspect( token: '<TOKEN>', tokenTypeHint: 'access_token', // (optional) clientId: '<CLIENT_ID>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/oauth2/list-organizations.md b/examples/2.4.x/server-dart/examples/oauth2/list-organizations.md index 7c6cad593..ae736643c 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/list-organizations.md +++ b/examples/2.4.x/server-dart/examples/oauth2/list-organizations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2OrganizationList result = await oauth2.listOrganizations( +models.Oauth2OrganizationList result = await oauth2.listOrganizations( limit: 1, // (optional) offset: 0, // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/oauth2/list-projects.md b/examples/2.4.x/server-dart/examples/oauth2/list-projects.md index b744ddc5a..ec8ac9956 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/list-projects.md +++ b/examples/2.4.x/server-dart/examples/oauth2/list-projects.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2ProjectList result = await oauth2.listProjects( +models.Oauth2ProjectList result = await oauth2.listProjects( limit: 1, // (optional) offset: 0, // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/oauth2/reject.md b/examples/2.4.x/server-dart/examples/oauth2/reject.md index 784f943a4..c9d4e0b12 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/reject.md +++ b/examples/2.4.x/server-dart/examples/oauth2/reject.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); -Oauth2Reject result = await oauth2.reject( +models.Oauth2Reject result = await oauth2.reject( grantId: '<GRANT_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/oauth2/revoke.md b/examples/2.4.x/server-dart/examples/oauth2/revoke.md index e190b0d38..107577bf1 100644 --- a/examples/2.4.x/server-dart/examples/oauth2/revoke.md +++ b/examples/2.4.x/server-dart/examples/oauth2/revoke.md @@ -8,7 +8,7 @@ Client client = Client() Oauth2 oauth2 = Oauth2(client); - result = await oauth2.revoke( +models. result = await oauth2.revoke( token: '<TOKEN>', tokenTypeHint: 'access_token', // (optional) clientId: '<CLIENT_ID>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/organization/create-ephemeral-project-key.md b/examples/2.4.x/server-dart/examples/organization/create-ephemeral-project-key.md index 3c0a1463f..7ea4e7d96 100644 --- a/examples/2.4.x/server-dart/examples/organization/create-ephemeral-project-key.md +++ b/examples/2.4.x/server-dart/examples/organization/create-ephemeral-project-key.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Organization organization = Organization(client); -EphemeralKey result = await organization.createEphemeralProjectKey( +models.EphemeralKey result = await organization.createEphemeralProjectKey( projectId: '<PROJECT_ID>', scopes: [enums.ProjectKeyScopes.usersRead], duration: 600, diff --git a/examples/2.4.x/server-dart/examples/organization/create-installation.md b/examples/2.4.x/server-dart/examples/organization/create-installation.md index deee33644..eadf19251 100644 --- a/examples/2.4.x/server-dart/examples/organization/create-installation.md +++ b/examples/2.4.x/server-dart/examples/organization/create-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -AppInstallation result = await organization.createInstallation( +models.AppInstallation result = await organization.createInstallation( appId: '<APP_ID>', authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/organization/create-membership.md b/examples/2.4.x/server-dart/examples/organization/create-membership.md index 6c037bfbf..8a31fe697 100644 --- a/examples/2.4.x/server-dart/examples/organization/create-membership.md +++ b/examples/2.4.x/server-dart/examples/organization/create-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -Membership result = await organization.createMembership( +models.Membership result = await organization.createMembership( roles: [], email: 'email@example.com', // (optional) userId: '<USER_ID>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/organization/create-project.md b/examples/2.4.x/server-dart/examples/organization/create-project.md index 0a68b19ca..dcf3b6724 100644 --- a/examples/2.4.x/server-dart/examples/organization/create-project.md +++ b/examples/2.4.x/server-dart/examples/organization/create-project.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Organization organization = Organization(client); -Project result = await organization.createProject( +models.Project result = await organization.createProject( projectId: '<PROJECT_ID>', name: '<NAME>', region: enums.Region.fra, // (optional) diff --git a/examples/2.4.x/server-dart/examples/organization/get-installation.md b/examples/2.4.x/server-dart/examples/organization/get-installation.md index 187e534af..ebbe8f12b 100644 --- a/examples/2.4.x/server-dart/examples/organization/get-installation.md +++ b/examples/2.4.x/server-dart/examples/organization/get-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -AppInstallation result = await organization.getInstallation( +models.AppInstallation result = await organization.getInstallation( installationId: '<INSTALLATION_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/organization/get-membership.md b/examples/2.4.x/server-dart/examples/organization/get-membership.md index 6bcaae3b4..722a56382 100644 --- a/examples/2.4.x/server-dart/examples/organization/get-membership.md +++ b/examples/2.4.x/server-dart/examples/organization/get-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -Membership result = await organization.getMembership( +models.Membership result = await organization.getMembership( membershipId: '<MEMBERSHIP_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/organization/get-project-key.md b/examples/2.4.x/server-dart/examples/organization/get-project-key.md index 9200d0c0a..6806f7942 100644 --- a/examples/2.4.x/server-dart/examples/organization/get-project-key.md +++ b/examples/2.4.x/server-dart/examples/organization/get-project-key.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -Key result = await organization.getProjectKey( +models.Key result = await organization.getProjectKey( projectId: '<PROJECT_ID>', keyId: '<KEY_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/organization/get-project.md b/examples/2.4.x/server-dart/examples/organization/get-project.md index 751fcc905..2ac8960cf 100644 --- a/examples/2.4.x/server-dart/examples/organization/get-project.md +++ b/examples/2.4.x/server-dart/examples/organization/get-project.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -Project result = await organization.getProject( +models.Project result = await organization.getProject( projectId: '<PROJECT_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/organization/get.md b/examples/2.4.x/server-dart/examples/organization/get.md index d6b96003f..38e048ec1 100644 --- a/examples/2.4.x/server-dart/examples/organization/get.md +++ b/examples/2.4.x/server-dart/examples/organization/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Organization organization = Organization(client); -Organization result = await organization.get(); +models.Organization result = await organization.get(); ``` diff --git a/examples/2.4.x/server-dart/examples/organization/list-installations.md b/examples/2.4.x/server-dart/examples/organization/list-installations.md index 2730102d3..8751362b2 100644 --- a/examples/2.4.x/server-dart/examples/organization/list-installations.md +++ b/examples/2.4.x/server-dart/examples/organization/list-installations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -AppInstallationList result = await organization.listInstallations( +models.AppInstallationList result = await organization.listInstallations( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/organization/list-memberships.md b/examples/2.4.x/server-dart/examples/organization/list-memberships.md index a3c8812e9..279851e61 100644 --- a/examples/2.4.x/server-dart/examples/organization/list-memberships.md +++ b/examples/2.4.x/server-dart/examples/organization/list-memberships.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -MembershipList result = await organization.listMemberships( +models.MembershipList result = await organization.listMemberships( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/organization/list-project-keys.md b/examples/2.4.x/server-dart/examples/organization/list-project-keys.md index 499c6c997..1cb2584c6 100644 --- a/examples/2.4.x/server-dart/examples/organization/list-project-keys.md +++ b/examples/2.4.x/server-dart/examples/organization/list-project-keys.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -KeyList result = await organization.listProjectKeys( +models.KeyList result = await organization.listProjectKeys( projectId: '<PROJECT_ID>', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/organization/list-projects.md b/examples/2.4.x/server-dart/examples/organization/list-projects.md index 49b5b5ec2..31c6c5f6b 100644 --- a/examples/2.4.x/server-dart/examples/organization/list-projects.md +++ b/examples/2.4.x/server-dart/examples/organization/list-projects.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -ProjectList result = await organization.listProjects( +models.ProjectList result = await organization.listProjects( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/organization/update-installation.md b/examples/2.4.x/server-dart/examples/organization/update-installation.md index 63b7ce9a4..af52ff16d 100644 --- a/examples/2.4.x/server-dart/examples/organization/update-installation.md +++ b/examples/2.4.x/server-dart/examples/organization/update-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -AppInstallation result = await organization.updateInstallation( +models.AppInstallation result = await organization.updateInstallation( installationId: '<INSTALLATION_ID>', authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/organization/update-membership.md b/examples/2.4.x/server-dart/examples/organization/update-membership.md index ad9bccffe..dea770e91 100644 --- a/examples/2.4.x/server-dart/examples/organization/update-membership.md +++ b/examples/2.4.x/server-dart/examples/organization/update-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -Membership result = await organization.updateMembership( +models.Membership result = await organization.updateMembership( membershipId: '<MEMBERSHIP_ID>', roles: [], ); diff --git a/examples/2.4.x/server-dart/examples/organization/update-project-key.md b/examples/2.4.x/server-dart/examples/organization/update-project-key.md index dfe84199d..1db36db4c 100644 --- a/examples/2.4.x/server-dart/examples/organization/update-project-key.md +++ b/examples/2.4.x/server-dart/examples/organization/update-project-key.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Organization organization = Organization(client); -Key result = await organization.updateProjectKey( +models.Key result = await organization.updateProjectKey( projectId: '<PROJECT_ID>', keyId: '<KEY_ID>', name: '<NAME>', diff --git a/examples/2.4.x/server-dart/examples/organization/update-project.md b/examples/2.4.x/server-dart/examples/organization/update-project.md index 9c94d9cd8..847ed1ffb 100644 --- a/examples/2.4.x/server-dart/examples/organization/update-project.md +++ b/examples/2.4.x/server-dart/examples/organization/update-project.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -Project result = await organization.updateProject( +models.Project result = await organization.updateProject( projectId: '<PROJECT_ID>', name: '<NAME>', ); diff --git a/examples/2.4.x/server-dart/examples/organization/update.md b/examples/2.4.x/server-dart/examples/organization/update.md index 25aa1eedf..49774a6ea 100644 --- a/examples/2.4.x/server-dart/examples/organization/update.md +++ b/examples/2.4.x/server-dart/examples/organization/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Organization organization = Organization(client); -Organization result = await organization.update( +models.Organization result = await organization.update( name: '<NAME>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-backup-policy.md b/examples/2.4.x/server-dart/examples/postgresql/create-backup-policy.md index 1abd350df..4d99a4e5d 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -BackupPolicy result = await postgresql.createBackupPolicy( +models.BackupPolicy result = await postgresql.createBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', name: '<NAME>', diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-backup.md b/examples/2.4.x/server-dart/examples/postgresql/create-backup.md index f880015ae..47ce9cf0b 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-backup.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-backup.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseBackup result = await postgresql.createBackup( +models.DedicatedDatabaseBackup result = await postgresql.createBackup( databaseId: '<DATABASE_ID>', type: 'full', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-branch.md b/examples/2.4.x/server-dart/examples/postgresql/create-branch.md index 7be8a71a6..eaa833837 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-branch.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-branch.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.createBranch( +models.DedicatedDatabase result = await postgresql.createBranch( databaseId: '<DATABASE_ID>', branchId: '<BRANCH_ID>', // (optional) ttl: 300, // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-execution.md b/examples/2.4.x/server-dart/examples/postgresql/create-execution.md index 1e2e99813..c5eaf0280 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-execution.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-execution.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseExecution result = await postgresql.createExecution( +models.DedicatedDatabaseExecution result = await postgresql.createExecution( databaseId: '<DATABASE_ID>', sql: '<SQL>', bindings: {}, // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-extension.md b/examples/2.4.x/server-dart/examples/postgresql/create-extension.md index 5b6e4c318..d2f1d39d0 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-extension.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-extension.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.createExtension( +models.DedicatedDatabase result = await postgresql.createExtension( databaseId: '<DATABASE_ID>', name: '<NAME>', ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-failover.md b/examples/2.4.x/server-dart/examples/postgresql/create-failover.md index da88f6cef..5fea6bdaf 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-failover.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-failover.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.createFailover( +models.DedicatedDatabase result = await postgresql.createFailover( databaseId: '<DATABASE_ID>', targetReplicaId: '<TARGET_REPLICA_ID>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-migration.md b/examples/2.4.x/server-dart/examples/postgresql/create-migration.md index 7745a8cbd..7164c541e 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-migration.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-migration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.createMigration( +models.DedicatedDatabase result = await postgresql.createMigration( databaseId: '<DATABASE_ID>', targetType: 'shared', specification: '<SPECIFICATION>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-restoration.md b/examples/2.4.x/server-dart/examples/postgresql/create-restoration.md index 31e9323b3..0376314dc 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-restoration.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-restoration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseRestoration result = await postgresql.createRestoration( +models.DedicatedDatabaseRestoration result = await postgresql.createRestoration( databaseId: '<DATABASE_ID>', type: 'backup', // (optional) backupId: '<BACKUP_ID>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/create-upgrade.md b/examples/2.4.x/server-dart/examples/postgresql/create-upgrade.md index 4fb49e60a..46c5bf1d7 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create-upgrade.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create-upgrade.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.createUpgrade( +models.DedicatedDatabase result = await postgresql.createUpgrade( databaseId: '<DATABASE_ID>', targetVersion: '<TARGET_VERSION>', ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/create.md b/examples/2.4.x/server-dart/examples/postgresql/create.md index 5bc34df8d..2e87819e2 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/create.md +++ b/examples/2.4.x/server-dart/examples/postgresql/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.create( +models.DedicatedDatabase result = await postgresql.create( databaseId: '<DATABASE_ID>', name: '<NAME>', version: '17', // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/get-backup-policy.md b/examples/2.4.x/server-dart/examples/postgresql/get-backup-policy.md index 47a1cb12e..cec83be86 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/get-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/postgresql/get-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -BackupPolicy result = await postgresql.getBackupPolicy( +models.BackupPolicy result = await postgresql.getBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/get-backup.md b/examples/2.4.x/server-dart/examples/postgresql/get-backup.md index 188538be6..d7a815fca 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/get-backup.md +++ b/examples/2.4.x/server-dart/examples/postgresql/get-backup.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseBackup result = await postgresql.getBackup( +models.DedicatedDatabaseBackup result = await postgresql.getBackup( databaseId: '<DATABASE_ID>', backupId: '<BACKUP_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/get-pitr.md b/examples/2.4.x/server-dart/examples/postgresql/get-pitr.md index 48e3fa17a..81ea74528 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/get-pitr.md +++ b/examples/2.4.x/server-dart/examples/postgresql/get-pitr.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabasePITRWindows result = await postgresql.getPitr( +models.DedicatedDatabasePITRWindows result = await postgresql.getPitr( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/get-pooler.md b/examples/2.4.x/server-dart/examples/postgresql/get-pooler.md index 4f6f01f90..6c6012762 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/get-pooler.md +++ b/examples/2.4.x/server-dart/examples/postgresql/get-pooler.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabasePooler result = await postgresql.getPooler( +models.DedicatedDatabasePooler result = await postgresql.getPooler( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/get-replicas.md b/examples/2.4.x/server-dart/examples/postgresql/get-replicas.md index 2d1b2b7c9..117853dcd 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/get-replicas.md +++ b/examples/2.4.x/server-dart/examples/postgresql/get-replicas.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseReplicas result = await postgresql.getReplicas( +models.DedicatedDatabaseReplicas result = await postgresql.getReplicas( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/get-restoration.md b/examples/2.4.x/server-dart/examples/postgresql/get-restoration.md index 53c5a3f66..82eb8b21a 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/get-restoration.md +++ b/examples/2.4.x/server-dart/examples/postgresql/get-restoration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseRestoration result = await postgresql.getRestoration( +models.DedicatedDatabaseRestoration result = await postgresql.getRestoration( databaseId: '<DATABASE_ID>', restorationId: '<RESTORATION_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/get-status.md b/examples/2.4.x/server-dart/examples/postgresql/get-status.md index 3ea4154a3..37ac07a75 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/get-status.md +++ b/examples/2.4.x/server-dart/examples/postgresql/get-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DatabaseStatus result = await postgresql.getStatus( +models.DatabaseStatus result = await postgresql.getStatus( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/get.md b/examples/2.4.x/server-dart/examples/postgresql/get.md index b47fc5860..8f9cf741b 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/get.md +++ b/examples/2.4.x/server-dart/examples/postgresql/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.get( +models.DedicatedDatabase result = await postgresql.get( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/list-backup-policies.md b/examples/2.4.x/server-dart/examples/postgresql/list-backup-policies.md index 736fe6d29..8cda87999 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/list-backup-policies.md +++ b/examples/2.4.x/server-dart/examples/postgresql/list-backup-policies.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -BackupPolicyList result = await postgresql.listBackupPolicies( +models.BackupPolicyList result = await postgresql.listBackupPolicies( databaseId: '<DATABASE_ID>', queries: [], // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/list-backups.md b/examples/2.4.x/server-dart/examples/postgresql/list-backups.md index 1551ea567..efd7752b5 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/list-backups.md +++ b/examples/2.4.x/server-dart/examples/postgresql/list-backups.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseBackupList result = await postgresql.listBackups( +models.DedicatedDatabaseBackupList result = await postgresql.listBackups( databaseId: '<DATABASE_ID>', queries: [], // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/postgresql/list-branches.md b/examples/2.4.x/server-dart/examples/postgresql/list-branches.md index 73a3e7780..542ae8c3c 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/list-branches.md +++ b/examples/2.4.x/server-dart/examples/postgresql/list-branches.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseBranchList result = await postgresql.listBranches( +models.DedicatedDatabaseBranchList result = await postgresql.listBranches( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/list-extensions.md b/examples/2.4.x/server-dart/examples/postgresql/list-extensions.md index 0dd709e52..f435a5b9f 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/list-extensions.md +++ b/examples/2.4.x/server-dart/examples/postgresql/list-extensions.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseExtensions result = await postgresql.listExtensions( +models.DedicatedDatabaseExtensions result = await postgresql.listExtensions( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/list-operations.md b/examples/2.4.x/server-dart/examples/postgresql/list-operations.md index e0827b5f9..7ec268343 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/list-operations.md +++ b/examples/2.4.x/server-dart/examples/postgresql/list-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseOperationList result = await postgresql.listOperations( +models.DedicatedDatabaseOperationList result = await postgresql.listOperations( databaseId: '<DATABASE_ID>', status: 'queued', // (optional) limit: 1, // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/list-restorations.md b/examples/2.4.x/server-dart/examples/postgresql/list-restorations.md index e78c6f996..c4e8c7d29 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/list-restorations.md +++ b/examples/2.4.x/server-dart/examples/postgresql/list-restorations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseRestorationList result = await postgresql.listRestorations( +models.DedicatedDatabaseRestorationList result = await postgresql.listRestorations( databaseId: '<DATABASE_ID>', status: 'pending', // (optional) type: 'backup', // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/list-specifications.md b/examples/2.4.x/server-dart/examples/postgresql/list-specifications.md index 749a68231..88b4f9d1e 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/list-specifications.md +++ b/examples/2.4.x/server-dart/examples/postgresql/list-specifications.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseSpecificationList result = await postgresql.listSpecifications(); +models.DedicatedDatabaseSpecificationList result = await postgresql.listSpecifications(); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/list.md b/examples/2.4.x/server-dart/examples/postgresql/list.md index d7cd796e9..c8775e92d 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/list.md +++ b/examples/2.4.x/server-dart/examples/postgresql/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseList result = await postgresql.list( +models.DedicatedDatabaseList result = await postgresql.list( queries: [], // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/update-backup-policy.md b/examples/2.4.x/server-dart/examples/postgresql/update-backup-policy.md index 88584145f..d2ea5bb4d 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/update-backup-policy.md +++ b/examples/2.4.x/server-dart/examples/postgresql/update-backup-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -BackupPolicy result = await postgresql.updateBackupPolicy( +models.BackupPolicy result = await postgresql.updateBackupPolicy( databaseId: '<DATABASE_ID>', policyId: '<POLICY_ID>', name: '<NAME>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/update-backup-storage.md b/examples/2.4.x/server-dart/examples/postgresql/update-backup-storage.md index 490289b83..0d3c42fea 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/update-backup-storage.md +++ b/examples/2.4.x/server-dart/examples/postgresql/update-backup-storage.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseBackupStorage result = await postgresql.updateBackupStorage( +models.DedicatedDatabaseBackupStorage result = await postgresql.updateBackupStorage( databaseId: '<DATABASE_ID>', provider: 's3', bucket: '<BUCKET>', diff --git a/examples/2.4.x/server-dart/examples/postgresql/update-credentials.md b/examples/2.4.x/server-dart/examples/postgresql/update-credentials.md index dadc612c0..b5ff57671 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/update-credentials.md +++ b/examples/2.4.x/server-dart/examples/postgresql/update-credentials.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabaseOperation result = await postgresql.updateCredentials( +models.DedicatedDatabaseOperation result = await postgresql.updateCredentials( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/postgresql/update-maintenance.md b/examples/2.4.x/server-dart/examples/postgresql/update-maintenance.md index 3335220dc..eb7350368 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/update-maintenance.md +++ b/examples/2.4.x/server-dart/examples/postgresql/update-maintenance.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.updateMaintenance( +models.DedicatedDatabase result = await postgresql.updateMaintenance( databaseId: '<DATABASE_ID>', day: 'sun', hourUtc: 0, diff --git a/examples/2.4.x/server-dart/examples/postgresql/update-pooler.md b/examples/2.4.x/server-dart/examples/postgresql/update-pooler.md index fd7898f30..9f61dd2b8 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/update-pooler.md +++ b/examples/2.4.x/server-dart/examples/postgresql/update-pooler.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabasePooler result = await postgresql.updatePooler( +models.DedicatedDatabasePooler result = await postgresql.updatePooler( databaseId: '<DATABASE_ID>', mode: 'transaction', // (optional) maxConnections: 10, // (optional) diff --git a/examples/2.4.x/server-dart/examples/postgresql/update.md b/examples/2.4.x/server-dart/examples/postgresql/update.md index 0494aeaae..81843d96f 100644 --- a/examples/2.4.x/server-dart/examples/postgresql/update.md +++ b/examples/2.4.x/server-dart/examples/postgresql/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Postgresql postgresql = Postgresql(client); -DedicatedDatabase result = await postgresql.update( +models.DedicatedDatabase result = await postgresql.update( databaseId: '<DATABASE_ID>', name: '<NAME>', // (optional) status: 'ready', // (optional) diff --git a/examples/2.4.x/server-dart/examples/presences/get.md b/examples/2.4.x/server-dart/examples/presences/get.md index f8025297f..4b529ee41 100644 --- a/examples/2.4.x/server-dart/examples/presences/get.md +++ b/examples/2.4.x/server-dart/examples/presences/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Presences presences = Presences(client); -Presence result = await presences.get( +models.Presence result = await presences.get( presenceId: '<PRESENCE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/presences/list.md b/examples/2.4.x/server-dart/examples/presences/list.md index d0a87bb13..5a2b86f95 100644 --- a/examples/2.4.x/server-dart/examples/presences/list.md +++ b/examples/2.4.x/server-dart/examples/presences/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Presences presences = Presences(client); -PresenceList result = await presences.list( +models.PresenceList result = await presences.list( queries: [], // (optional) total: false, // (optional) ttl: 0, // (optional) diff --git a/examples/2.4.x/server-dart/examples/presences/update.md b/examples/2.4.x/server-dart/examples/presences/update.md index fcdc97b25..482b4b8a8 100644 --- a/examples/2.4.x/server-dart/examples/presences/update.md +++ b/examples/2.4.x/server-dart/examples/presences/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Presences presences = Presences(client); -Presence result = await presences.update( +models.Presence result = await presences.update( presenceId: '<PRESENCE_ID>', userId: '<USER_ID>', status: '<STATUS>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/presences/upsert.md b/examples/2.4.x/server-dart/examples/presences/upsert.md index 7602a2eb2..b3c7fceba 100644 --- a/examples/2.4.x/server-dart/examples/presences/upsert.md +++ b/examples/2.4.x/server-dart/examples/presences/upsert.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Presences presences = Presences(client); -Presence result = await presences.upsert( +models.Presence result = await presences.upsert( presenceId: '<PRESENCE_ID>', userId: '<USER_ID>', status: '<STATUS>', diff --git a/examples/2.4.x/server-dart/examples/project/create-android-platform.md b/examples/2.4.x/server-dart/examples/project/create-android-platform.md index 47a5c14bd..3ad3bd5f1 100644 --- a/examples/2.4.x/server-dart/examples/project/create-android-platform.md +++ b/examples/2.4.x/server-dart/examples/project/create-android-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformAndroid result = await project.createAndroidPlatform( +models.PlatformAndroid result = await project.createAndroidPlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', applicationId: '<APPLICATION_ID>', diff --git a/examples/2.4.x/server-dart/examples/project/create-apple-platform.md b/examples/2.4.x/server-dart/examples/project/create-apple-platform.md index 8de12084a..9ecb1655c 100644 --- a/examples/2.4.x/server-dart/examples/project/create-apple-platform.md +++ b/examples/2.4.x/server-dart/examples/project/create-apple-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformApple result = await project.createApplePlatform( +models.PlatformApple result = await project.createApplePlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', bundleIdentifier: '<BUNDLE_IDENTIFIER>', diff --git a/examples/2.4.x/server-dart/examples/project/create-ephemeral-key.md b/examples/2.4.x/server-dart/examples/project/create-ephemeral-key.md index 0a4699a9b..c8e7120c7 100644 --- a/examples/2.4.x/server-dart/examples/project/create-ephemeral-key.md +++ b/examples/2.4.x/server-dart/examples/project/create-ephemeral-key.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -EphemeralKey result = await project.createEphemeralKey( +models.EphemeralKey result = await project.createEphemeralKey( scopes: [enums.ProjectKeyScopes.usersRead], duration: 600, ); diff --git a/examples/2.4.x/server-dart/examples/project/create-linux-platform.md b/examples/2.4.x/server-dart/examples/project/create-linux-platform.md index a7842305e..fcc6deb4b 100644 --- a/examples/2.4.x/server-dart/examples/project/create-linux-platform.md +++ b/examples/2.4.x/server-dart/examples/project/create-linux-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformLinux result = await project.createLinuxPlatform( +models.PlatformLinux result = await project.createLinuxPlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', packageName: '<PACKAGE_NAME>', diff --git a/examples/2.4.x/server-dart/examples/project/create-mock-phone.md b/examples/2.4.x/server-dart/examples/project/create-mock-phone.md index c73c4c2fc..4c0a8578e 100644 --- a/examples/2.4.x/server-dart/examples/project/create-mock-phone.md +++ b/examples/2.4.x/server-dart/examples/project/create-mock-phone.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -MockNumber result = await project.createMockPhone( +models.MockNumber result = await project.createMockPhone( number: '+12065550100', otp: '<OTP>', ); diff --git a/examples/2.4.x/server-dart/examples/project/create-smtp-test.md b/examples/2.4.x/server-dart/examples/project/create-smtp-test.md index a1cadb9be..ce7834fb0 100644 --- a/examples/2.4.x/server-dart/examples/project/create-smtp-test.md +++ b/examples/2.4.x/server-dart/examples/project/create-smtp-test.md @@ -8,7 +8,7 @@ Client client = Client() Project project = Project(client); - result = await project.createSMTPTest( +models. result = await project.createSMTPTest( emails: ["recipient@example.com"], ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/create-variable.md b/examples/2.4.x/server-dart/examples/project/create-variable.md index 838fce0b6..c6c5d5afb 100644 --- a/examples/2.4.x/server-dart/examples/project/create-variable.md +++ b/examples/2.4.x/server-dart/examples/project/create-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Variable result = await project.createVariable( +models.Variable result = await project.createVariable( variableId: '<VARIABLE_ID>', key: '<KEY>', value: '<VALUE>', diff --git a/examples/2.4.x/server-dart/examples/project/create-web-platform.md b/examples/2.4.x/server-dart/examples/project/create-web-platform.md index 12b157ee0..8b5a8bf2f 100644 --- a/examples/2.4.x/server-dart/examples/project/create-web-platform.md +++ b/examples/2.4.x/server-dart/examples/project/create-web-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformWeb result = await project.createWebPlatform( +models.PlatformWeb result = await project.createWebPlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', hostname: 'app.example.com', diff --git a/examples/2.4.x/server-dart/examples/project/create-windows-platform.md b/examples/2.4.x/server-dart/examples/project/create-windows-platform.md index f2b47ca08..712a97b22 100644 --- a/examples/2.4.x/server-dart/examples/project/create-windows-platform.md +++ b/examples/2.4.x/server-dart/examples/project/create-windows-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformWindows result = await project.createWindowsPlatform( +models.PlatformWindows result = await project.createWindowsPlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', packageIdentifierName: '<PACKAGE_IDENTIFIER_NAME>', diff --git a/examples/2.4.x/server-dart/examples/project/get-email-template.md b/examples/2.4.x/server-dart/examples/project/get-email-template.md index c98e0c6b2..c06328405 100644 --- a/examples/2.4.x/server-dart/examples/project/get-email-template.md +++ b/examples/2.4.x/server-dart/examples/project/get-email-template.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -EmailTemplate result = await project.getEmailTemplate( +models.EmailTemplate result = await project.getEmailTemplate( templateId: enums.ProjectEmailTemplateId.verification, locale: enums.ProjectEmailTemplateLocale.af, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/project/get-key.md b/examples/2.4.x/server-dart/examples/project/get-key.md index 77ee7bd32..71fdc4298 100644 --- a/examples/2.4.x/server-dart/examples/project/get-key.md +++ b/examples/2.4.x/server-dart/examples/project/get-key.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Key result = await project.getKey( +models.Key result = await project.getKey( keyId: '<KEY_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/get-mock-phone.md b/examples/2.4.x/server-dart/examples/project/get-mock-phone.md index e3ef61ff9..46f05c092 100644 --- a/examples/2.4.x/server-dart/examples/project/get-mock-phone.md +++ b/examples/2.4.x/server-dart/examples/project/get-mock-phone.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -MockNumber result = await project.getMockPhone( +models.MockNumber result = await project.getMockPhone( number: '+12065550100', ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/get-variable.md b/examples/2.4.x/server-dart/examples/project/get-variable.md index 2b39e1048..96509d9d8 100644 --- a/examples/2.4.x/server-dart/examples/project/get-variable.md +++ b/examples/2.4.x/server-dart/examples/project/get-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Variable result = await project.getVariable( +models.Variable result = await project.getVariable( variableId: '<VARIABLE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/get.md b/examples/2.4.x/server-dart/examples/project/get.md index a2bfa10fc..dbd7698e3 100644 --- a/examples/2.4.x/server-dart/examples/project/get.md +++ b/examples/2.4.x/server-dart/examples/project/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() Project project = Project(client); -Project result = await project.get(); +models.Project result = await project.get(); ``` diff --git a/examples/2.4.x/server-dart/examples/project/list-email-templates.md b/examples/2.4.x/server-dart/examples/project/list-email-templates.md index 0bd9ee7eb..7171a8fa1 100644 --- a/examples/2.4.x/server-dart/examples/project/list-email-templates.md +++ b/examples/2.4.x/server-dart/examples/project/list-email-templates.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -EmailTemplateList result = await project.listEmailTemplates( +models.EmailTemplateList result = await project.listEmailTemplates( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/project/list-keys.md b/examples/2.4.x/server-dart/examples/project/list-keys.md index 6002f7289..c6976777a 100644 --- a/examples/2.4.x/server-dart/examples/project/list-keys.md +++ b/examples/2.4.x/server-dart/examples/project/list-keys.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -KeyList result = await project.listKeys( +models.KeyList result = await project.listKeys( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/project/list-mock-phones.md b/examples/2.4.x/server-dart/examples/project/list-mock-phones.md index dac643971..12e0a887a 100644 --- a/examples/2.4.x/server-dart/examples/project/list-mock-phones.md +++ b/examples/2.4.x/server-dart/examples/project/list-mock-phones.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -MockNumberList result = await project.listMockPhones( +models.MockNumberList result = await project.listMockPhones( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/project/list-o-auth-2-providers.md b/examples/2.4.x/server-dart/examples/project/list-o-auth-2-providers.md index b69c52731..83df5c8e2 100644 --- a/examples/2.4.x/server-dart/examples/project/list-o-auth-2-providers.md +++ b/examples/2.4.x/server-dart/examples/project/list-o-auth-2-providers.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2ProviderList result = await project.listOAuth2Providers( +models.OAuth2ProviderList result = await project.listOAuth2Providers( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/project/list-platforms.md b/examples/2.4.x/server-dart/examples/project/list-platforms.md index 9333ae36b..84ba9f4f9 100644 --- a/examples/2.4.x/server-dart/examples/project/list-platforms.md +++ b/examples/2.4.x/server-dart/examples/project/list-platforms.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformList result = await project.listPlatforms( +models.PlatformList result = await project.listPlatforms( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/project/list-policies.md b/examples/2.4.x/server-dart/examples/project/list-policies.md index 5aba661cf..1f5b65d03 100644 --- a/examples/2.4.x/server-dart/examples/project/list-policies.md +++ b/examples/2.4.x/server-dart/examples/project/list-policies.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PolicyList result = await project.listPolicies( +models.PolicyList result = await project.listPolicies( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/project/list-variables.md b/examples/2.4.x/server-dart/examples/project/list-variables.md index ae5b52705..256d3644b 100644 --- a/examples/2.4.x/server-dart/examples/project/list-variables.md +++ b/examples/2.4.x/server-dart/examples/project/list-variables.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -VariableList result = await project.listVariables( +models.VariableList result = await project.listVariables( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/project/update-android-platform.md b/examples/2.4.x/server-dart/examples/project/update-android-platform.md index ee6eccf6a..4ec8822ee 100644 --- a/examples/2.4.x/server-dart/examples/project/update-android-platform.md +++ b/examples/2.4.x/server-dart/examples/project/update-android-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformAndroid result = await project.updateAndroidPlatform( +models.PlatformAndroid result = await project.updateAndroidPlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', applicationId: '<APPLICATION_ID>', diff --git a/examples/2.4.x/server-dart/examples/project/update-apple-platform.md b/examples/2.4.x/server-dart/examples/project/update-apple-platform.md index 8feb3093f..33c8fd2df 100644 --- a/examples/2.4.x/server-dart/examples/project/update-apple-platform.md +++ b/examples/2.4.x/server-dart/examples/project/update-apple-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformApple result = await project.updateApplePlatform( +models.PlatformApple result = await project.updateApplePlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', bundleIdentifier: '<BUNDLE_IDENTIFIER>', diff --git a/examples/2.4.x/server-dart/examples/project/update-auth-method.md b/examples/2.4.x/server-dart/examples/project/update-auth-method.md index 167c591a0..0f1b4da5f 100644 --- a/examples/2.4.x/server-dart/examples/project/update-auth-method.md +++ b/examples/2.4.x/server-dart/examples/project/update-auth-method.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateAuthMethod( +models.Project result = await project.updateAuthMethod( methodId: enums.ProjectAuthMethodId.emailPassword, enabled: false, ); diff --git a/examples/2.4.x/server-dart/examples/project/update-deny-aliased-email-policy.md b/examples/2.4.x/server-dart/examples/project/update-deny-aliased-email-policy.md index 78eb7db44..ee2206d18 100644 --- a/examples/2.4.x/server-dart/examples/project/update-deny-aliased-email-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-deny-aliased-email-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateDenyAliasedEmailPolicy( +models.Project result = await project.updateDenyAliasedEmailPolicy( enabled: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-deny-corporate-email-policy.md b/examples/2.4.x/server-dart/examples/project/update-deny-corporate-email-policy.md index 450942aef..901df9b6e 100644 --- a/examples/2.4.x/server-dart/examples/project/update-deny-corporate-email-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-deny-corporate-email-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateDenyCorporateEmailPolicy( +models.Project result = await project.updateDenyCorporateEmailPolicy( enabled: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-deny-disposable-email-policy.md b/examples/2.4.x/server-dart/examples/project/update-deny-disposable-email-policy.md index 85fcc50d9..a3931909a 100644 --- a/examples/2.4.x/server-dart/examples/project/update-deny-disposable-email-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-deny-disposable-email-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateDenyDisposableEmailPolicy( +models.Project result = await project.updateDenyDisposableEmailPolicy( enabled: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-deny-free-email-policy.md b/examples/2.4.x/server-dart/examples/project/update-deny-free-email-policy.md index 23f7bb156..0eb8e234e 100644 --- a/examples/2.4.x/server-dart/examples/project/update-deny-free-email-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-deny-free-email-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateDenyFreeEmailPolicy( +models.Project result = await project.updateDenyFreeEmailPolicy( enabled: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-email-template.md b/examples/2.4.x/server-dart/examples/project/update-email-template.md index 15f0a8fa7..8a463c40b 100644 --- a/examples/2.4.x/server-dart/examples/project/update-email-template.md +++ b/examples/2.4.x/server-dart/examples/project/update-email-template.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -EmailTemplate result = await project.updateEmailTemplate( +models.EmailTemplate result = await project.updateEmailTemplate( templateId: enums.ProjectEmailTemplateId.verification, locale: enums.ProjectEmailTemplateLocale.af, // (optional) subject: '<SUBJECT>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-key.md b/examples/2.4.x/server-dart/examples/project/update-key.md index 0f0a73058..d9af798f5 100644 --- a/examples/2.4.x/server-dart/examples/project/update-key.md +++ b/examples/2.4.x/server-dart/examples/project/update-key.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -Key result = await project.updateKey( +models.Key result = await project.updateKey( keyId: '<KEY_ID>', name: '<NAME>', scopes: [enums.ProjectKeyScopes.usersRead], diff --git a/examples/2.4.x/server-dart/examples/project/update-labels.md b/examples/2.4.x/server-dart/examples/project/update-labels.md index a4a426c74..9a05e0eee 100644 --- a/examples/2.4.x/server-dart/examples/project/update-labels.md +++ b/examples/2.4.x/server-dart/examples/project/update-labels.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateLabels( +models.Project result = await project.updateLabels( labels: ["production"], ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-linux-platform.md b/examples/2.4.x/server-dart/examples/project/update-linux-platform.md index c93fe7a6a..2f55905b5 100644 --- a/examples/2.4.x/server-dart/examples/project/update-linux-platform.md +++ b/examples/2.4.x/server-dart/examples/project/update-linux-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformLinux result = await project.updateLinuxPlatform( +models.PlatformLinux result = await project.updateLinuxPlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', packageName: '<PACKAGE_NAME>', diff --git a/examples/2.4.x/server-dart/examples/project/update-membership-privacy-policy.md b/examples/2.4.x/server-dart/examples/project/update-membership-privacy-policy.md index d1164b7ff..92ee5f31e 100644 --- a/examples/2.4.x/server-dart/examples/project/update-membership-privacy-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-membership-privacy-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateMembershipPrivacyPolicy( +models.Project result = await project.updateMembershipPrivacyPolicy( userId: false, // (optional) userEmail: false, // (optional) userPhone: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-mfa-factors-policy.md b/examples/2.4.x/server-dart/examples/project/update-mfa-factors-policy.md index 97e1bd661..b6d2060b0 100644 --- a/examples/2.4.x/server-dart/examples/project/update-mfa-factors-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-mfa-factors-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateMFAFactorsPolicy( +models.Project result = await project.updateMFAFactorsPolicy( totp: false, // (optional) email: false, // (optional) phone: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-mock-phone.md b/examples/2.4.x/server-dart/examples/project/update-mock-phone.md index 3f584d210..3a02a6602 100644 --- a/examples/2.4.x/server-dart/examples/project/update-mock-phone.md +++ b/examples/2.4.x/server-dart/examples/project/update-mock-phone.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -MockNumber result = await project.updateMockPhone( +models.MockNumber result = await project.updateMockPhone( number: '+12065550100', otp: '<OTP>', ); diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-amazon.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-amazon.md index 1821f5d89..3dfa55825 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-amazon.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-amazon.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Amazon result = await project.updateOAuth2Amazon( +models.OAuth2Amazon result = await project.updateOAuth2Amazon( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-apple.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-apple.md index 3df9bb1df..f1c0697d3 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-apple.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-apple.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Apple result = await project.updateOAuth2Apple( +models.OAuth2Apple result = await project.updateOAuth2Apple( serviceId: '<SERVICE_ID>', // (optional) keyId: '<KEY_ID>', // (optional) teamId: '<TEAM_ID>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-appwrite.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-appwrite.md index 54187ae55..68af0f909 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-appwrite.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-appwrite.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Appwrite result = await project.updateOAuth2Appwrite( +models.OAuth2Appwrite result = await project.updateOAuth2Appwrite( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-auth-0.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-auth-0.md index 1e8d4e7c8..1b0a12768 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-auth-0.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-auth-0.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Auth0 result = await project.updateOAuth2Auth0( +models.OAuth2Auth0 result = await project.updateOAuth2Auth0( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) endpoint: '<ENDPOINT>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-authentik.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-authentik.md index 734702733..6701b36fd 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-authentik.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-authentik.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Authentik result = await project.updateOAuth2Authentik( +models.OAuth2Authentik result = await project.updateOAuth2Authentik( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) endpoint: '<ENDPOINT>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-autodesk.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-autodesk.md index 1273e6e4c..f5f7c8da2 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-autodesk.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-autodesk.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Autodesk result = await project.updateOAuth2Autodesk( +models.OAuth2Autodesk result = await project.updateOAuth2Autodesk( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-bitbucket.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-bitbucket.md index 2f9274a08..923159493 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-bitbucket.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-bitbucket.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Bitbucket result = await project.updateOAuth2Bitbucket( +models.OAuth2Bitbucket result = await project.updateOAuth2Bitbucket( key: '<KEY>', // (optional) secret: '<SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-bitly.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-bitly.md index 5f03c82e8..2efda4895 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-bitly.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-bitly.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Bitly result = await project.updateOAuth2Bitly( +models.OAuth2Bitly result = await project.updateOAuth2Bitly( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-box.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-box.md index b00ab7c58..33a5fe405 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-box.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-box.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Box result = await project.updateOAuth2Box( +models.OAuth2Box result = await project.updateOAuth2Box( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-cloudflare.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-cloudflare.md index a6a4201f9..a190c8c20 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-cloudflare.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-cloudflare.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Cloudflare result = await project.updateOAuth2Cloudflare( +models.OAuth2Cloudflare result = await project.updateOAuth2Cloudflare( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-dailymotion.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-dailymotion.md index 1117cf853..6842c5468 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-dailymotion.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-dailymotion.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Dailymotion result = await project.updateOAuth2Dailymotion( +models.OAuth2Dailymotion result = await project.updateOAuth2Dailymotion( apiKey: '<API_KEY>', // (optional) apiSecret: '<API_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-discord.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-discord.md index 0f551981c..b584a3426 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-discord.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-discord.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Discord result = await project.updateOAuth2Discord( +models.OAuth2Discord result = await project.updateOAuth2Discord( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) prompt: [enums.ProjectOAuth2DiscordPrompt.none], // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-disqus.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-disqus.md index 42d62a827..83ac68ab6 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-disqus.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-disqus.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Disqus result = await project.updateOAuth2Disqus( +models.OAuth2Disqus result = await project.updateOAuth2Disqus( publicKey: '<PUBLIC_KEY>', // (optional) secretKey: '<SECRET_KEY>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-dropbox.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-dropbox.md index 200829125..bce077a6c 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-dropbox.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-dropbox.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Dropbox result = await project.updateOAuth2Dropbox( +models.OAuth2Dropbox result = await project.updateOAuth2Dropbox( appKey: '<APP_KEY>', // (optional) appSecret: '<APP_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-etsy.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-etsy.md index 3e6118a1c..ad506a2c7 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-etsy.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-etsy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Etsy result = await project.updateOAuth2Etsy( +models.OAuth2Etsy result = await project.updateOAuth2Etsy( keyString: '<KEY_STRING>', // (optional) sharedSecret: '<SHARED_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-facebook.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-facebook.md index 48d282a98..f22e6c41f 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-facebook.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-facebook.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Facebook result = await project.updateOAuth2Facebook( +models.OAuth2Facebook result = await project.updateOAuth2Facebook( appId: '<APP_ID>', // (optional) appSecret: '<APP_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-figma.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-figma.md index 1b80d0e56..804cd983d 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-figma.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-figma.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Figma result = await project.updateOAuth2Figma( +models.OAuth2Figma result = await project.updateOAuth2Figma( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-fusion-auth.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-fusion-auth.md index 73c41171d..b6f9edc36 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-fusion-auth.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-fusion-auth.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2FusionAuth result = await project.updateOAuth2FusionAuth( +models.OAuth2FusionAuth result = await project.updateOAuth2FusionAuth( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) endpoint: '<ENDPOINT>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-git-hub.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-git-hub.md index d286b5bc5..a6d17c7d5 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-git-hub.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-git-hub.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Github result = await project.updateOAuth2GitHub( +models.OAuth2Github result = await project.updateOAuth2GitHub( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) prompt: [enums.ProjectOAuth2GitHubPrompt.selectAccount], // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-gitlab.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-gitlab.md index 1d7418d95..aba514c75 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-gitlab.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-gitlab.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Gitlab result = await project.updateOAuth2Gitlab( +models.OAuth2Gitlab result = await project.updateOAuth2Gitlab( applicationId: '<APPLICATION_ID>', // (optional) secret: '<SECRET>', // (optional) endpoint: 'https://example.com', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-google.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-google.md index a442d1c1d..d63144eba 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-google.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-google.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Google result = await project.updateOAuth2Google( +models.OAuth2Google result = await project.updateOAuth2Google( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) prompt: [enums.ProjectOAuth2GooglePrompt.none], // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-hugging-face.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-hugging-face.md index 2a5bb5167..c34b056e0 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-hugging-face.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-hugging-face.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2HuggingFace result = await project.updateOAuth2HuggingFace( +models.OAuth2HuggingFace result = await project.updateOAuth2HuggingFace( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-kakao.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-kakao.md index 9342c3e73..0737cddf3 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-kakao.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-kakao.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Kakao result = await project.updateOAuth2Kakao( +models.OAuth2Kakao result = await project.updateOAuth2Kakao( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) prompt: [enums.ProjectOAuth2KakaoPrompt.none], // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-keycloak.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-keycloak.md index b7195b82c..8b9547e05 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-keycloak.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-keycloak.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Keycloak result = await project.updateOAuth2Keycloak( +models.OAuth2Keycloak result = await project.updateOAuth2Keycloak( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) endpoint: '<ENDPOINT>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-kick.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-kick.md index 5cfdf9a4a..0897f4103 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-kick.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-kick.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Kick result = await project.updateOAuth2Kick( +models.OAuth2Kick result = await project.updateOAuth2Kick( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-linkedin.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-linkedin.md index d69f1eaa3..cde9ff85c 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-linkedin.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-linkedin.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Linkedin result = await project.updateOAuth2Linkedin( +models.OAuth2Linkedin result = await project.updateOAuth2Linkedin( clientId: '<CLIENT_ID>', // (optional) primaryClientSecret: '<PRIMARY_CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-microsoft.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-microsoft.md index a41245b67..8150d8e45 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-microsoft.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-microsoft.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Microsoft result = await project.updateOAuth2Microsoft( +models.OAuth2Microsoft result = await project.updateOAuth2Microsoft( applicationId: '<APPLICATION_ID>', // (optional) applicationSecret: '<APPLICATION_SECRET>', // (optional) tenant: '<TENANT>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-notion.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-notion.md index ba723ccc5..ba99bc43d 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-notion.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-notion.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Notion result = await project.updateOAuth2Notion( +models.OAuth2Notion result = await project.updateOAuth2Notion( oauthClientId: '<OAUTH_CLIENT_ID>', // (optional) oauthClientSecret: '<OAUTH_CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-oidc.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-oidc.md index d2dc2d9da..5371c5166 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-oidc.md +++ b/examples/2.4.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/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Oidc result = await project.updateOAuth2Oidc( +models.OAuth2Oidc result = await project.updateOAuth2Oidc( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) wellKnownURL: 'https://example.com', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-okta.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-okta.md index eca6d3e06..e64b89b26 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-okta.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-okta.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Okta result = await project.updateOAuth2Okta( +models.OAuth2Okta result = await project.updateOAuth2Okta( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) domain: 'example.com', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-paypal-sandbox.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-paypal-sandbox.md index eda05f5e6..10b4ac2d2 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-paypal-sandbox.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-paypal-sandbox.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Paypal result = await project.updateOAuth2PaypalSandbox( +models.OAuth2Paypal result = await project.updateOAuth2PaypalSandbox( clientId: '<CLIENT_ID>', // (optional) secretKey: '<SECRET_KEY>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-paypal.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-paypal.md index 120b58170..66b97973a 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-paypal.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-paypal.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Paypal result = await project.updateOAuth2Paypal( +models.OAuth2Paypal result = await project.updateOAuth2Paypal( clientId: '<CLIENT_ID>', // (optional) secretKey: '<SECRET_KEY>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-podio.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-podio.md index 9b5ee737b..288c42994 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-podio.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-podio.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Podio result = await project.updateOAuth2Podio( +models.OAuth2Podio result = await project.updateOAuth2Podio( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-resend.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-resend.md index 408f73874..a7aba04c1 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-resend.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-resend.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Resend result = await project.updateOAuth2Resend( +models.OAuth2Resend result = await project.updateOAuth2Resend( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-salesforce.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-salesforce.md index 2120fb2a6..7068f0c57 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-salesforce.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-salesforce.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Salesforce result = await project.updateOAuth2Salesforce( +models.OAuth2Salesforce result = await project.updateOAuth2Salesforce( customerKey: '<CUSTOMER_KEY>', // (optional) customerSecret: '<CUSTOMER_SECRET>', // (optional) prompt: [enums.ProjectOAuth2SalesforcePrompt.login], // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-server.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-server.md index f4244226b..d11442d31 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-server.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-server.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateOAuth2Server( +models.Project result = await project.updateOAuth2Server( enabled: false, authorizationUrl: 'https://example.com', scopes: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-slack.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-slack.md index 1032810c6..aab2f7b3d 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-slack.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-slack.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Slack result = await project.updateOAuth2Slack( +models.OAuth2Slack result = await project.updateOAuth2Slack( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-spotify.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-spotify.md index 8e7f98347..8486527f9 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-spotify.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-spotify.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Spotify result = await project.updateOAuth2Spotify( +models.OAuth2Spotify result = await project.updateOAuth2Spotify( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-stripe.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-stripe.md index 367466733..28ac0cf8d 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-stripe.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-stripe.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Stripe result = await project.updateOAuth2Stripe( +models.OAuth2Stripe result = await project.updateOAuth2Stripe( clientId: '<CLIENT_ID>', // (optional) apiSecretKey: '<API_SECRET_KEY>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tik-tok.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tik-tok.md index 8190a2704..a05529eb1 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tik-tok.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tik-tok.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2TikTok result = await project.updateOAuth2TikTok( +models.OAuth2TikTok result = await project.updateOAuth2TikTok( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tradeshift-sandbox.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tradeshift-sandbox.md index 653abf6eb..a449960d1 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tradeshift-sandbox.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tradeshift-sandbox.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Tradeshift result = await project.updateOAuth2TradeshiftSandbox( +models.OAuth2Tradeshift result = await project.updateOAuth2TradeshiftSandbox( oauth2ClientId: '<OAUTH2_CLIENT_ID>', // (optional) oauth2ClientSecret: '<OAUTH2_CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tradeshift.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tradeshift.md index 1e780bfc0..b0512c21d 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tradeshift.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-tradeshift.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Tradeshift result = await project.updateOAuth2Tradeshift( +models.OAuth2Tradeshift result = await project.updateOAuth2Tradeshift( oauth2ClientId: '<OAUTH2_CLIENT_ID>', // (optional) oauth2ClientSecret: '<OAUTH2_CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-twitch.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-twitch.md index 93d29acdc..acc03d902 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-twitch.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-twitch.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Twitch result = await project.updateOAuth2Twitch( +models.OAuth2Twitch result = await project.updateOAuth2Twitch( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-webflow.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-webflow.md index c7e6f0af1..b98555977 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-webflow.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-webflow.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Webflow result = await project.updateOAuth2Webflow( +models.OAuth2Webflow result = await project.updateOAuth2Webflow( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-word-press.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-word-press.md index 32e3495a3..4d1b30bb2 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-word-press.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-word-press.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2WordPress result = await project.updateOAuth2WordPress( +models.OAuth2WordPress result = await project.updateOAuth2WordPress( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-yahoo.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-yahoo.md index f08d50749..2a0702cf3 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-yahoo.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-yahoo.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Yahoo result = await project.updateOAuth2Yahoo( +models.OAuth2Yahoo result = await project.updateOAuth2Yahoo( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-yandex.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-yandex.md index 4106fe67b..7efb63d91 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-yandex.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-yandex.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Yandex result = await project.updateOAuth2Yandex( +models.OAuth2Yandex result = await project.updateOAuth2Yandex( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-zoho.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-zoho.md index f89791455..b16e6db0b 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-zoho.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-zoho.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -OAuth2Zoho result = await project.updateOAuth2Zoho( +models.OAuth2Zoho result = await project.updateOAuth2Zoho( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) prompt: [enums.ProjectOAuth2ZohoPrompt.consent], // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-zoom.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-zoom.md index d91ddcbde..5a5d15b64 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2-zoom.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2-zoom.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2Zoom result = await project.updateOAuth2Zoom( +models.OAuth2Zoom result = await project.updateOAuth2Zoom( clientId: '<CLIENT_ID>', // (optional) clientSecret: '<CLIENT_SECRET>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-o-auth-2x.md b/examples/2.4.x/server-dart/examples/project/update-o-auth-2x.md index bf7e5f622..e77d54958 100644 --- a/examples/2.4.x/server-dart/examples/project/update-o-auth-2x.md +++ b/examples/2.4.x/server-dart/examples/project/update-o-auth-2x.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -OAuth2X result = await project.updateOAuth2X( +models.OAuth2X result = await project.updateOAuth2X( customerKey: '<CUSTOMER_KEY>', // (optional) secretKey: '<SECRET_KEY>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-password-dictionary-policy.md b/examples/2.4.x/server-dart/examples/project/update-password-dictionary-policy.md index 9d07cff39..6f6085980 100644 --- a/examples/2.4.x/server-dart/examples/project/update-password-dictionary-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-password-dictionary-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updatePasswordDictionaryPolicy( +models.Project result = await project.updatePasswordDictionaryPolicy( enabled: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-password-history-policy.md b/examples/2.4.x/server-dart/examples/project/update-password-history-policy.md index 2d5ca13e3..aae5a6911 100644 --- a/examples/2.4.x/server-dart/examples/project/update-password-history-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-password-history-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updatePasswordHistoryPolicy( +models.Project result = await project.updatePasswordHistoryPolicy( total: 1, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-password-personal-data-policy.md b/examples/2.4.x/server-dart/examples/project/update-password-personal-data-policy.md index 51680b7d5..8f9850c7d 100644 --- a/examples/2.4.x/server-dart/examples/project/update-password-personal-data-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-password-personal-data-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updatePasswordPersonalDataPolicy( +models.Project result = await project.updatePasswordPersonalDataPolicy( enabled: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-password-pwned-policy.md b/examples/2.4.x/server-dart/examples/project/update-password-pwned-policy.md index 385c8dd5a..974d4ac75 100644 --- a/examples/2.4.x/server-dart/examples/project/update-password-pwned-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-password-pwned-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updatePasswordPwnedPolicy( +models.Project result = await project.updatePasswordPwnedPolicy( enabled: false, // (optional) sessions: false, // (optional) users: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-password-strength-policy.md b/examples/2.4.x/server-dart/examples/project/update-password-strength-policy.md index eca34320a..c6ef38a6e 100644 --- a/examples/2.4.x/server-dart/examples/project/update-password-strength-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-password-strength-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PolicyPasswordStrength result = await project.updatePasswordStrengthPolicy( +models.PolicyPasswordStrength result = await project.updatePasswordStrengthPolicy( min: 8, // (optional) uppercase: false, // (optional) lowercase: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-protocol.md b/examples/2.4.x/server-dart/examples/project/update-protocol.md index 261273d65..25d097259 100644 --- a/examples/2.4.x/server-dart/examples/project/update-protocol.md +++ b/examples/2.4.x/server-dart/examples/project/update-protocol.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateProtocol( +models.Project result = await project.updateProtocol( protocolId: enums.ProjectProtocolId.rest, enabled: false, ); diff --git a/examples/2.4.x/server-dart/examples/project/update-service.md b/examples/2.4.x/server-dart/examples/project/update-service.md index 2d4f71526..ef60dcb24 100644 --- a/examples/2.4.x/server-dart/examples/project/update-service.md +++ b/examples/2.4.x/server-dart/examples/project/update-service.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateService( +models.Project result = await project.updateService( serviceId: enums.ProjectServiceId.account, enabled: false, ); diff --git a/examples/2.4.x/server-dart/examples/project/update-session-alert-policy.md b/examples/2.4.x/server-dart/examples/project/update-session-alert-policy.md index a3d892f02..4988ef71c 100644 --- a/examples/2.4.x/server-dart/examples/project/update-session-alert-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-session-alert-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateSessionAlertPolicy( +models.Project result = await project.updateSessionAlertPolicy( enabled: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-session-duration-policy.md b/examples/2.4.x/server-dart/examples/project/update-session-duration-policy.md index b5a0e4cf4..c4116268f 100644 --- a/examples/2.4.x/server-dart/examples/project/update-session-duration-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-session-duration-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateSessionDurationPolicy( +models.Project result = await project.updateSessionDurationPolicy( duration: 60, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-session-invalidation-policy.md b/examples/2.4.x/server-dart/examples/project/update-session-invalidation-policy.md index e38b5180d..3956318d3 100644 --- a/examples/2.4.x/server-dart/examples/project/update-session-invalidation-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-session-invalidation-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateSessionInvalidationPolicy( +models.Project result = await project.updateSessionInvalidationPolicy( enabled: false, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-session-limit-policy.md b/examples/2.4.x/server-dart/examples/project/update-session-limit-policy.md index 8726970e7..02aa0ba0f 100644 --- a/examples/2.4.x/server-dart/examples/project/update-session-limit-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-session-limit-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateSessionLimitPolicy( +models.Project result = await project.updateSessionLimitPolicy( total: 1, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-smtp.md b/examples/2.4.x/server-dart/examples/project/update-smtp.md index c1d414775..7216811fb 100644 --- a/examples/2.4.x/server-dart/examples/project/update-smtp.md +++ b/examples/2.4.x/server-dart/examples/project/update-smtp.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateSMTP( +models.Project result = await project.updateSMTP( host: 'example.com', // (optional) port: 587, // (optional) username: '<USERNAME>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-user-limit-policy.md b/examples/2.4.x/server-dart/examples/project/update-user-limit-policy.md index cbbdeb42f..1eb633690 100644 --- a/examples/2.4.x/server-dart/examples/project/update-user-limit-policy.md +++ b/examples/2.4.x/server-dart/examples/project/update-user-limit-policy.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Project result = await project.updateUserLimitPolicy( +models.Project result = await project.updateUserLimitPolicy( total: 0, ); ``` diff --git a/examples/2.4.x/server-dart/examples/project/update-variable.md b/examples/2.4.x/server-dart/examples/project/update-variable.md index eef236d53..4fbaf67df 100644 --- a/examples/2.4.x/server-dart/examples/project/update-variable.md +++ b/examples/2.4.x/server-dart/examples/project/update-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -Variable result = await project.updateVariable( +models.Variable result = await project.updateVariable( variableId: '<VARIABLE_ID>', key: '<KEY>', // (optional) value: '<VALUE>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/project/update-web-platform.md b/examples/2.4.x/server-dart/examples/project/update-web-platform.md index 5de1cdc9c..a3616e59b 100644 --- a/examples/2.4.x/server-dart/examples/project/update-web-platform.md +++ b/examples/2.4.x/server-dart/examples/project/update-web-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformWeb result = await project.updateWebPlatform( +models.PlatformWeb result = await project.updateWebPlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', hostname: 'app.example.com', diff --git a/examples/2.4.x/server-dart/examples/project/update-windows-platform.md b/examples/2.4.x/server-dart/examples/project/update-windows-platform.md index 306d00248..23c40df20 100644 --- a/examples/2.4.x/server-dart/examples/project/update-windows-platform.md +++ b/examples/2.4.x/server-dart/examples/project/update-windows-platform.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Project project = Project(client); -PlatformWindows result = await project.updateWindowsPlatform( +models.PlatformWindows result = await project.updateWindowsPlatform( platformId: '<PLATFORM_ID>', name: '<NAME>', packageIdentifierName: '<PACKAGE_IDENTIFIER_NAME>', diff --git a/examples/2.4.x/server-dart/examples/proxy/create-api-rule.md b/examples/2.4.x/server-dart/examples/proxy/create-api-rule.md index a0a161505..2eb44796a 100644 --- a/examples/2.4.x/server-dart/examples/proxy/create-api-rule.md +++ b/examples/2.4.x/server-dart/examples/proxy/create-api-rule.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Proxy proxy = Proxy(client); -ProxyRule result = await proxy.createAPIRule( +models.ProxyRule result = await proxy.createAPIRule( domain: 'example.com', ); ``` diff --git a/examples/2.4.x/server-dart/examples/proxy/create-function-rule.md b/examples/2.4.x/server-dart/examples/proxy/create-function-rule.md index 10bf38a2f..73cbfd821 100644 --- a/examples/2.4.x/server-dart/examples/proxy/create-function-rule.md +++ b/examples/2.4.x/server-dart/examples/proxy/create-function-rule.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Proxy proxy = Proxy(client); -ProxyRule result = await proxy.createFunctionRule( +models.ProxyRule result = await proxy.createFunctionRule( domain: 'example.com', functionId: '<FUNCTION_ID>', branch: '<BRANCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/proxy/create-invalidation.md b/examples/2.4.x/server-dart/examples/proxy/create-invalidation.md index f97b22e58..15c0c6e1b 100644 --- a/examples/2.4.x/server-dart/examples/proxy/create-invalidation.md +++ b/examples/2.4.x/server-dart/examples/proxy/create-invalidation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Proxy proxy = Proxy(client); -ProxyInvalidation result = await proxy.createInvalidation( +models.ProxyInvalidation result = await proxy.createInvalidation( domain: 'example.com', type: enums.InvalidationType.tag, reference: '<REFERENCE>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/proxy/create-redirect-rule.md b/examples/2.4.x/server-dart/examples/proxy/create-redirect-rule.md index 348390630..bbd971be0 100644 --- a/examples/2.4.x/server-dart/examples/proxy/create-redirect-rule.md +++ b/examples/2.4.x/server-dart/examples/proxy/create-redirect-rule.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Proxy proxy = Proxy(client); -ProxyRule result = await proxy.createRedirectRule( +models.ProxyRule result = await proxy.createRedirectRule( domain: 'example.com', url: 'https://example.com', statusCode: enums.StatusCode.movedPermanently, diff --git a/examples/2.4.x/server-dart/examples/proxy/create-site-rule.md b/examples/2.4.x/server-dart/examples/proxy/create-site-rule.md index 872ba3578..3741cdbd2 100644 --- a/examples/2.4.x/server-dart/examples/proxy/create-site-rule.md +++ b/examples/2.4.x/server-dart/examples/proxy/create-site-rule.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Proxy proxy = Proxy(client); -ProxyRule result = await proxy.createSiteRule( +models.ProxyRule result = await proxy.createSiteRule( domain: 'example.com', siteId: '<SITE_ID>', branch: '<BRANCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/proxy/get-rule.md b/examples/2.4.x/server-dart/examples/proxy/get-rule.md index 6ade16472..9740359bd 100644 --- a/examples/2.4.x/server-dart/examples/proxy/get-rule.md +++ b/examples/2.4.x/server-dart/examples/proxy/get-rule.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Proxy proxy = Proxy(client); -ProxyRule result = await proxy.getRule( +models.ProxyRule result = await proxy.getRule( ruleId: '<RULE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/proxy/list-rules.md b/examples/2.4.x/server-dart/examples/proxy/list-rules.md index 29931d1d3..b46cf0ee2 100644 --- a/examples/2.4.x/server-dart/examples/proxy/list-rules.md +++ b/examples/2.4.x/server-dart/examples/proxy/list-rules.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Proxy proxy = Proxy(client); -ProxyRuleList result = await proxy.listRules( +models.ProxyRuleList result = await proxy.listRules( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/proxy/update-rule-status.md b/examples/2.4.x/server-dart/examples/proxy/update-rule-status.md index 00c62dffa..cf8e45e94 100644 --- a/examples/2.4.x/server-dart/examples/proxy/update-rule-status.md +++ b/examples/2.4.x/server-dart/examples/proxy/update-rule-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Proxy proxy = Proxy(client); -ProxyRule result = await proxy.updateRuleStatus( +models.ProxyRule result = await proxy.updateRuleStatus( ruleId: '<RULE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/sites/create-deployment.md b/examples/2.4.x/server-dart/examples/sites/create-deployment.md index 261c04fe9..c5f25f7c5 100644 --- a/examples/2.4.x/server-dart/examples/sites/create-deployment.md +++ b/examples/2.4.x/server-dart/examples/sites/create-deployment.md @@ -1,6 +1,7 @@ ```dart import 'dart:io'; import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -9,7 +10,7 @@ Client client = Client() Sites sites = Sites(client); -Deployment result = await sites.createDeployment( +models.Deployment result = await sites.createDeployment( siteId: '<SITE_ID>', code: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), installCommand: '<INSTALL_COMMAND>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/sites/create-duplicate-deployment.md b/examples/2.4.x/server-dart/examples/sites/create-duplicate-deployment.md index 6844d143c..dd349cd2b 100644 --- a/examples/2.4.x/server-dart/examples/sites/create-duplicate-deployment.md +++ b/examples/2.4.x/server-dart/examples/sites/create-duplicate-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Deployment result = await sites.createDuplicateDeployment( +models.Deployment result = await sites.createDuplicateDeployment( siteId: '<SITE_ID>', deploymentId: '<DEPLOYMENT_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/sites/create-template-deployment.md b/examples/2.4.x/server-dart/examples/sites/create-template-deployment.md index a0d9004e2..5e5ee8cc8 100644 --- a/examples/2.4.x/server-dart/examples/sites/create-template-deployment.md +++ b/examples/2.4.x/server-dart/examples/sites/create-template-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Sites sites = Sites(client); -Deployment result = await sites.createTemplateDeployment( +models.Deployment result = await sites.createTemplateDeployment( siteId: '<SITE_ID>', repository: '<REPOSITORY>', owner: '<OWNER>', diff --git a/examples/2.4.x/server-dart/examples/sites/create-variable.md b/examples/2.4.x/server-dart/examples/sites/create-variable.md index 0144bec00..a8e36921e 100644 --- a/examples/2.4.x/server-dart/examples/sites/create-variable.md +++ b/examples/2.4.x/server-dart/examples/sites/create-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Variable result = await sites.createVariable( +models.Variable result = await sites.createVariable( siteId: '<SITE_ID>', variableId: '<VARIABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/sites/create-vcs-deployment.md b/examples/2.4.x/server-dart/examples/sites/create-vcs-deployment.md index a4fe7f8db..425c81230 100644 --- a/examples/2.4.x/server-dart/examples/sites/create-vcs-deployment.md +++ b/examples/2.4.x/server-dart/examples/sites/create-vcs-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Sites sites = Sites(client); -Deployment result = await sites.createVcsDeployment( +models.Deployment result = await sites.createVcsDeployment( siteId: '<SITE_ID>', type: enums.VCSReferenceType.branch, reference: '<REFERENCE>', diff --git a/examples/2.4.x/server-dart/examples/sites/create.md b/examples/2.4.x/server-dart/examples/sites/create.md index a1c617a38..329f296a0 100644 --- a/examples/2.4.x/server-dart/examples/sites/create.md +++ b/examples/2.4.x/server-dart/examples/sites/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Sites sites = Sites(client); -Site result = await sites.create( +models.Site result = await sites.create( siteId: '<SITE_ID>', name: '<NAME>', framework: enums.Framework.analog, diff --git a/examples/2.4.x/server-dart/examples/sites/get-deployment.md b/examples/2.4.x/server-dart/examples/sites/get-deployment.md index baaae7e75..be9465828 100644 --- a/examples/2.4.x/server-dart/examples/sites/get-deployment.md +++ b/examples/2.4.x/server-dart/examples/sites/get-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Deployment result = await sites.getDeployment( +models.Deployment result = await sites.getDeployment( siteId: '<SITE_ID>', deploymentId: '<DEPLOYMENT_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/sites/get-log.md b/examples/2.4.x/server-dart/examples/sites/get-log.md index b7e12b992..51335a5ca 100644 --- a/examples/2.4.x/server-dart/examples/sites/get-log.md +++ b/examples/2.4.x/server-dart/examples/sites/get-log.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Execution result = await sites.getLog( +models.Execution result = await sites.getLog( siteId: '<SITE_ID>', logId: '<LOG_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/sites/get-variable.md b/examples/2.4.x/server-dart/examples/sites/get-variable.md index 6da082bef..e89ec3a4b 100644 --- a/examples/2.4.x/server-dart/examples/sites/get-variable.md +++ b/examples/2.4.x/server-dart/examples/sites/get-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Variable result = await sites.getVariable( +models.Variable result = await sites.getVariable( siteId: '<SITE_ID>', variableId: '<VARIABLE_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/sites/get.md b/examples/2.4.x/server-dart/examples/sites/get.md index 148689b73..948201e1d 100644 --- a/examples/2.4.x/server-dart/examples/sites/get.md +++ b/examples/2.4.x/server-dart/examples/sites/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Site result = await sites.get( +models.Site result = await sites.get( siteId: '<SITE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/sites/list-deployments.md b/examples/2.4.x/server-dart/examples/sites/list-deployments.md index eef8e7d64..b48ee3c60 100644 --- a/examples/2.4.x/server-dart/examples/sites/list-deployments.md +++ b/examples/2.4.x/server-dart/examples/sites/list-deployments.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -DeploymentList result = await sites.listDeployments( +models.DeploymentList result = await sites.listDeployments( siteId: '<SITE_ID>', queries: [], // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/sites/list-frameworks.md b/examples/2.4.x/server-dart/examples/sites/list-frameworks.md index 19475423d..b2c9a7124 100644 --- a/examples/2.4.x/server-dart/examples/sites/list-frameworks.md +++ b/examples/2.4.x/server-dart/examples/sites/list-frameworks.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -FrameworkList result = await sites.listFrameworks( +models.FrameworkList result = await sites.listFrameworks( total: false, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/sites/list-logs.md b/examples/2.4.x/server-dart/examples/sites/list-logs.md index a95b29ac6..25f1d4231 100644 --- a/examples/2.4.x/server-dart/examples/sites/list-logs.md +++ b/examples/2.4.x/server-dart/examples/sites/list-logs.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -ExecutionList result = await sites.listLogs( +models.ExecutionList result = await sites.listLogs( siteId: '<SITE_ID>', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/sites/list-specifications.md b/examples/2.4.x/server-dart/examples/sites/list-specifications.md index 3335fbd99..98148b6d1 100644 --- a/examples/2.4.x/server-dart/examples/sites/list-specifications.md +++ b/examples/2.4.x/server-dart/examples/sites/list-specifications.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -SpecificationList result = await sites.listSpecifications( +models.SpecificationList result = await sites.listSpecifications( type: 'runtimes', // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/sites/list-variables.md b/examples/2.4.x/server-dart/examples/sites/list-variables.md index 2f226ed6f..0d78c6fe1 100644 --- a/examples/2.4.x/server-dart/examples/sites/list-variables.md +++ b/examples/2.4.x/server-dart/examples/sites/list-variables.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -VariableList result = await sites.listVariables( +models.VariableList result = await sites.listVariables( siteId: '<SITE_ID>', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/sites/list.md b/examples/2.4.x/server-dart/examples/sites/list.md index a9860af6d..9bbffa8e3 100644 --- a/examples/2.4.x/server-dart/examples/sites/list.md +++ b/examples/2.4.x/server-dart/examples/sites/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -SiteList result = await sites.list( +models.SiteList result = await sites.list( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/sites/update-deployment-status.md b/examples/2.4.x/server-dart/examples/sites/update-deployment-status.md index 01a22596e..aaa6f14ce 100644 --- a/examples/2.4.x/server-dart/examples/sites/update-deployment-status.md +++ b/examples/2.4.x/server-dart/examples/sites/update-deployment-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Deployment result = await sites.updateDeploymentStatus( +models.Deployment result = await sites.updateDeploymentStatus( siteId: '<SITE_ID>', deploymentId: '<DEPLOYMENT_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/sites/update-site-deployment.md b/examples/2.4.x/server-dart/examples/sites/update-site-deployment.md index 6139981e8..3bff61fb8 100644 --- a/examples/2.4.x/server-dart/examples/sites/update-site-deployment.md +++ b/examples/2.4.x/server-dart/examples/sites/update-site-deployment.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Site result = await sites.updateSiteDeployment( +models.Site result = await sites.updateSiteDeployment( siteId: '<SITE_ID>', deploymentId: '<DEPLOYMENT_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/sites/update-variable.md b/examples/2.4.x/server-dart/examples/sites/update-variable.md index 24a135ead..8f6a60ca2 100644 --- a/examples/2.4.x/server-dart/examples/sites/update-variable.md +++ b/examples/2.4.x/server-dart/examples/sites/update-variable.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Sites sites = Sites(client); -Variable result = await sites.updateVariable( +models.Variable result = await sites.updateVariable( siteId: '<SITE_ID>', variableId: '<VARIABLE_ID>', key: '<KEY>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/sites/update.md b/examples/2.4.x/server-dart/examples/sites/update.md index 44a1b3abd..ef3de612f 100644 --- a/examples/2.4.x/server-dart/examples/sites/update.md +++ b/examples/2.4.x/server-dart/examples/sites/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Sites sites = Sites(client); -Site result = await sites.update( +models.Site result = await sites.update( siteId: '<SITE_ID>', name: '<NAME>', framework: enums.Framework.analog, diff --git a/examples/2.4.x/server-dart/examples/storage/create-bucket.md b/examples/2.4.x/server-dart/examples/storage/create-bucket.md index 6f634a984..246205395 100644 --- a/examples/2.4.x/server-dart/examples/storage/create-bucket.md +++ b/examples/2.4.x/server-dart/examples/storage/create-bucket.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -11,7 +12,7 @@ Client client = Client() Storage storage = Storage(client); -Bucket result = await storage.createBucket( +models.Bucket result = await storage.createBucket( bucketId: '<BUCKET_ID>', name: '<NAME>', permissions: [Permission.read(Role.any())], // (optional) diff --git a/examples/2.4.x/server-dart/examples/storage/create-file.md b/examples/2.4.x/server-dart/examples/storage/create-file.md index d0fae4cb8..4086d7f1d 100644 --- a/examples/2.4.x/server-dart/examples/storage/create-file.md +++ b/examples/2.4.x/server-dart/examples/storage/create-file.md @@ -1,6 +1,7 @@ ```dart import 'dart:io'; import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -11,7 +12,7 @@ Client client = Client() Storage storage = Storage(client); -File result = await storage.createFile( +models.File result = await storage.createFile( bucketId: '<BUCKET_ID>', fileId: '<FILE_ID>', file: InputFile(path: './path-to-files/image.jpg', filename: 'image.jpg'), diff --git a/examples/2.4.x/server-dart/examples/storage/get-bucket.md b/examples/2.4.x/server-dart/examples/storage/get-bucket.md index e5e2ed721..ba987b5ce 100644 --- a/examples/2.4.x/server-dart/examples/storage/get-bucket.md +++ b/examples/2.4.x/server-dart/examples/storage/get-bucket.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Storage storage = Storage(client); -Bucket result = await storage.getBucket( +models.Bucket result = await storage.getBucket( bucketId: '<BUCKET_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/storage/get-file.md b/examples/2.4.x/server-dart/examples/storage/get-file.md index bc5272c54..5fa3c9c84 100644 --- a/examples/2.4.x/server-dart/examples/storage/get-file.md +++ b/examples/2.4.x/server-dart/examples/storage/get-file.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Storage storage = Storage(client); -File result = await storage.getFile( +models.File result = await storage.getFile( bucketId: '<BUCKET_ID>', fileId: '<FILE_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/storage/list-buckets.md b/examples/2.4.x/server-dart/examples/storage/list-buckets.md index 0b76ac287..c023a8089 100644 --- a/examples/2.4.x/server-dart/examples/storage/list-buckets.md +++ b/examples/2.4.x/server-dart/examples/storage/list-buckets.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Storage storage = Storage(client); -BucketList result = await storage.listBuckets( +models.BucketList result = await storage.listBuckets( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/storage/list-files.md b/examples/2.4.x/server-dart/examples/storage/list-files.md index ad417224e..f36aa0bd2 100644 --- a/examples/2.4.x/server-dart/examples/storage/list-files.md +++ b/examples/2.4.x/server-dart/examples/storage/list-files.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Storage storage = Storage(client); -FileList result = await storage.listFiles( +models.FileList result = await storage.listFiles( bucketId: '<BUCKET_ID>', queries: [], // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/storage/update-bucket.md b/examples/2.4.x/server-dart/examples/storage/update-bucket.md index c796c34c0..88a1571d7 100644 --- a/examples/2.4.x/server-dart/examples/storage/update-bucket.md +++ b/examples/2.4.x/server-dart/examples/storage/update-bucket.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -11,7 +12,7 @@ Client client = Client() Storage storage = Storage(client); -Bucket result = await storage.updateBucket( +models.Bucket result = await storage.updateBucket( bucketId: '<BUCKET_ID>', name: '<NAME>', permissions: [Permission.read(Role.any())], // (optional) diff --git a/examples/2.4.x/server-dart/examples/storage/update-file.md b/examples/2.4.x/server-dart/examples/storage/update-file.md index 4b3c3ac86..3d2ca4f69 100644 --- a/examples/2.4.x/server-dart/examples/storage/update-file.md +++ b/examples/2.4.x/server-dart/examples/storage/update-file.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() Storage storage = Storage(client); -File result = await storage.updateFile( +models.File result = await storage.updateFile( bucketId: '<BUCKET_ID>', fileId: '<FILE_ID>', name: '<NAME>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-big-int-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-big-int-column.md index ff23c3a73..67c433782 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-big-int-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-big-int-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnBigint result = await tablesDB.createBigIntColumn( +models.ColumnBigint result = await tablesDB.createBigIntColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-boolean-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-boolean-column.md index d1ed05b80..095a863d5 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-boolean-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-boolean-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnBoolean result = await tablesDB.createBooleanColumn( +models.ColumnBoolean result = await tablesDB.createBooleanColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-cutover.md b/examples/2.4.x/server-dart/examples/tablesdb/create-cutover.md index 58bd63599..2b7acb8a4 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-cutover.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-cutover.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DatabaseMigration result = await tablesDB.createCutover( +models.DatabaseMigration result = await tablesDB.createCutover( databaseId: '<DATABASE_ID>', migrationId: '<MIGRATION_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-datetime-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-datetime-column.md index 99107f148..4b8db3258 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-datetime-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-datetime-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnDatetime result = await tablesDB.createDatetimeColumn( +models.ColumnDatetime result = await tablesDB.createDatetimeColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-email-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-email-column.md index 00e6d3f00..17eff039e 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-email-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-email-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnEmail result = await tablesDB.createEmailColumn( +models.ColumnEmail result = await tablesDB.createEmailColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-enum-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-enum-column.md index 079a774d4..ad26d08df 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-enum-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-enum-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnEnum result = await tablesDB.createEnumColumn( +models.ColumnEnum result = await tablesDB.createEnumColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-failover.md b/examples/2.4.x/server-dart/examples/tablesdb/create-failover.md index 29919921f..d10677277 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-failover.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-failover.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DedicatedDatabase result = await tablesDB.createFailover( +models.DedicatedDatabase result = await tablesDB.createFailover( databaseId: '<DATABASE_ID>', targetReplicaId: '<TARGET_REPLICA_ID>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-float-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-float-column.md index a6432000b..da47a713e 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-float-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-float-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnFloat result = await tablesDB.createFloatColumn( +models.ColumnFloat result = await tablesDB.createFloatColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-index.md b/examples/2.4.x/server-dart/examples/tablesdb/create-index.md index 54979f52a..b6d7c2462 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-index.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-index.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnIndex result = await tablesDB.createIndex( +models.ColumnIndex result = await tablesDB.createIndex( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-integer-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-integer-column.md index 8f1e2cdd4..70ab71dc6 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-integer-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-integer-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnInteger result = await tablesDB.createIntegerColumn( +models.ColumnInteger result = await tablesDB.createIntegerColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-ip-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-ip-column.md index 16d38c7bb..a02b47597 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-ip-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-ip-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnIp result = await tablesDB.createIpColumn( +models.ColumnIp result = await tablesDB.createIpColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-line-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-line-column.md index 3c38760b9..f17b8866c 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-line-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-line-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnLine result = await tablesDB.createLineColumn( +models.ColumnLine result = await tablesDB.createLineColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-longtext-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-longtext-column.md index 36b7b2aa9..c8837b88e 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-longtext-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-longtext-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnLongtext result = await tablesDB.createLongtextColumn( +models.ColumnLongtext result = await tablesDB.createLongtextColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-mediumtext-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-mediumtext-column.md index 3c26f6e82..dd96a65f2 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-mediumtext-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-mediumtext-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnMediumtext result = await tablesDB.createMediumtextColumn( +models.ColumnMediumtext result = await tablesDB.createMediumtextColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-migration.md b/examples/2.4.x/server-dart/examples/tablesdb/create-migration.md index 65ea694a4..4624ac5dd 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-migration.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-migration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DatabaseMigration result = await tablesDB.createMigration( +models.DatabaseMigration result = await tablesDB.createMigration( databaseId: '<DATABASE_ID>', specification: 's-1vcpu-1gb', autoCutover: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-operations.md b/examples/2.4.x/server-dart/examples/tablesdb/create-operations.md index 359982dad..32995b2c6 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-operations.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Transaction result = await tablesDB.createOperations( +models.Transaction result = await tablesDB.createOperations( transactionId: '<TRANSACTION_ID>', operations: [ { diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-point-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-point-column.md index 6615ef21b..8cbb13f44 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-point-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-point-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnPoint result = await tablesDB.createPointColumn( +models.ColumnPoint result = await tablesDB.createPointColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-polygon-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-polygon-column.md index 9036a1950..3964bba4b 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-polygon-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-polygon-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnPolygon result = await tablesDB.createPolygonColumn( +models.ColumnPolygon result = await tablesDB.createPolygonColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-relationship-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-relationship-column.md index 4a7a0754a..00ad06ca0 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-relationship-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-relationship-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnRelationship result = await tablesDB.createRelationshipColumn( +models.ColumnRelationship result = await tablesDB.createRelationshipColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', relatedTableId: '<RELATED_TABLE_ID>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-row.md b/examples/2.4.x/server-dart/examples/tablesdb/create-row.md index 589d98ff1..66bbf7034 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-row.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-row.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.createRow( +models.Row result = await tablesDB.createRow( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', rowId: '<ROW_ID>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-rows.md b/examples/2.4.x/server-dart/examples/tablesdb/create-rows.md index 7bfed01e9..9ad67cdbe 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-rows.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-rows.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,12 +9,12 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -RowList result = await tablesDB.createRows( +models.RowList result = await tablesDB.createRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', rows: [ { - "$id": "example1", + "\$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-string-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-string-column.md index d410af1ec..ab89b4ae7 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-string-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-string-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnString result = await tablesDB.createStringColumn( +models.ColumnString result = await tablesDB.createStringColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-table.md b/examples/2.4.x/server-dart/examples/tablesdb/create-table.md index e4563135c..e35bf13de 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-table.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-table.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Table result = await tablesDB.createTable( +models.Table result = await tablesDB.createTable( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', name: '<NAME>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-text-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-text-column.md index d26dc60e1..c6ac8968d 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-text-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-text-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnText result = await tablesDB.createTextColumn( +models.ColumnText result = await tablesDB.createTextColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-transaction.md b/examples/2.4.x/server-dart/examples/tablesdb/create-transaction.md index bb779b8c2..a75eb74ad 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-transaction.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Transaction result = await tablesDB.createTransaction( +models.Transaction result = await tablesDB.createTransaction( ttl: 60, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-url-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-url-column.md index d7de58691..c52052b0f 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-url-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-url-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnUrl result = await tablesDB.createUrlColumn( +models.ColumnUrl result = await tablesDB.createUrlColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create-varchar-column.md b/examples/2.4.x/server-dart/examples/tablesdb/create-varchar-column.md index 57a5037ec..43af0c08b 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create-varchar-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create-varchar-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnVarchar result = await tablesDB.createVarcharColumn( +models.ColumnVarchar result = await tablesDB.createVarcharColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/create.md b/examples/2.4.x/server-dart/examples/tablesdb/create.md index 86f968fce..a94727f43 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/create.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Database result = await tablesDB.create( +models.Database result = await tablesDB.create( databaseId: '<DATABASE_ID>', name: '<NAME>', enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/decrement-row-column.md b/examples/2.4.x/server-dart/examples/tablesdb/decrement-row-column.md index 74657b6f4..7b05ac3d0 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/decrement-row-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/decrement-row-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.decrementRowColumn( +models.Row result = await tablesDB.decrementRowColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', rowId: '<ROW_ID>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/delete-rows.md b/examples/2.4.x/server-dart/examples/tablesdb/delete-rows.md index b929cbad8..79d076ca9 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/delete-rows.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/delete-rows.md @@ -11,7 +11,7 @@ TablesDB tablesDB = TablesDB(client); await tablesDB.deleteRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', - queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<ROW_ID>\"]}"], // (optional) + queries: ["{\"method\":\"equal\", \"attribute\":\"\$id\", \"values\":[\"<ROW_ID>\"]}"], // (optional) transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/tablesdb/get-index.md b/examples/2.4.x/server-dart/examples/tablesdb/get-index.md index 517559d49..30e142478 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/get-index.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/get-index.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnIndex result = await tablesDB.getIndex( +models.ColumnIndex result = await tablesDB.getIndex( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/get-migration.md b/examples/2.4.x/server-dart/examples/tablesdb/get-migration.md index f3f28a867..613fd8988 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/get-migration.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/get-migration.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DatabaseMigration result = await tablesDB.getMigration( +models.DatabaseMigration result = await tablesDB.getMigration( databaseId: '<DATABASE_ID>', migrationId: '<MIGRATION_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/tablesdb/get-replicas.md b/examples/2.4.x/server-dart/examples/tablesdb/get-replicas.md index e3dbc4b6c..78234d4ff 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/get-replicas.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/get-replicas.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DedicatedDatabaseReplicas result = await tablesDB.getReplicas( +models.DedicatedDatabaseReplicas result = await tablesDB.getReplicas( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/tablesdb/get-row.md b/examples/2.4.x/server-dart/examples/tablesdb/get-row.md index 11a7d67b8..3f0ce9b39 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/get-row.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/get-row.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.getRow( +models.Row result = await tablesDB.getRow( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', rowId: '<ROW_ID>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/get-status.md b/examples/2.4.x/server-dart/examples/tablesdb/get-status.md index faa67bf53..8c5bbf9c8 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/get-status.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/get-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DatabaseStatus result = await tablesDB.getStatus( +models.DatabaseStatus result = await tablesDB.getStatus( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/tablesdb/get-table.md b/examples/2.4.x/server-dart/examples/tablesdb/get-table.md index 81eed7f1b..d23e2741e 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/get-table.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/get-table.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Table result = await tablesDB.getTable( +models.Table result = await tablesDB.getTable( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/tablesdb/get-transaction.md b/examples/2.4.x/server-dart/examples/tablesdb/get-transaction.md index ffe133298..b04117702 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/get-transaction.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/get-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Transaction result = await tablesDB.getTransaction( +models.Transaction result = await tablesDB.getTransaction( transactionId: '<TRANSACTION_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/tablesdb/get.md b/examples/2.4.x/server-dart/examples/tablesdb/get.md index 24412ad11..4e5199204 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/get.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Database result = await tablesDB.get( +models.Database result = await tablesDB.get( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/tablesdb/increment-row-column.md b/examples/2.4.x/server-dart/examples/tablesdb/increment-row-column.md index 0a17c6060..46529cd89 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/increment-row-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/increment-row-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.incrementRowColumn( +models.Row result = await tablesDB.incrementRowColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', rowId: '<ROW_ID>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list-columns.md b/examples/2.4.x/server-dart/examples/tablesdb/list-columns.md index 7c2200768..798b43c68 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list-columns.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list-columns.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnList result = await tablesDB.listColumns( +models.ColumnList result = await tablesDB.listColumns( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list-indexes.md b/examples/2.4.x/server-dart/examples/tablesdb/list-indexes.md index 669bbb3a2..961adfecc 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list-indexes.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list-indexes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnIndexList result = await tablesDB.listIndexes( +models.ColumnIndexList result = await tablesDB.listIndexes( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list-migrations.md b/examples/2.4.x/server-dart/examples/tablesdb/list-migrations.md index bca0231d7..3e885d9c3 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list-migrations.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list-migrations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DatabaseMigrationList result = await tablesDB.listMigrations( +models.DatabaseMigrationList result = await tablesDB.listMigrations( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list-operations.md b/examples/2.4.x/server-dart/examples/tablesdb/list-operations.md index b30df343d..300de380a 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list-operations.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DedicatedDatabaseOperationList result = await tablesDB.listOperations( +models.DedicatedDatabaseOperationList result = await tablesDB.listOperations( databaseId: '<DATABASE_ID>', status: 'queued', // (optional) limit: 1, // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list-rows.md b/examples/2.4.x/server-dart/examples/tablesdb/list-rows.md index 863e461ee..f1ecd2752 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list-rows.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list-rows.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -RowList result = await tablesDB.listRows( +models.RowList result = await tablesDB.listRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list-specifications.md b/examples/2.4.x/server-dart/examples/tablesdb/list-specifications.md index 55b70e8cc..a17590736 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list-specifications.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list-specifications.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DedicatedDatabaseSpecificationList result = await tablesDB.listSpecifications(); +models.DedicatedDatabaseSpecificationList result = await tablesDB.listSpecifications(); ``` diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list-tables.md b/examples/2.4.x/server-dart/examples/tablesdb/list-tables.md index b640527ba..7ac70659d 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list-tables.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list-tables.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -TableList result = await tablesDB.listTables( +models.TableList result = await tablesDB.listTables( databaseId: '<DATABASE_ID>', queries: [], // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list-transactions.md b/examples/2.4.x/server-dart/examples/tablesdb/list-transactions.md index ff0d673cb..cc6d40e54 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list-transactions.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list-transactions.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -TransactionList result = await tablesDB.listTransactions( +models.TransactionList result = await tablesDB.listTransactions( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/tablesdb/list.md b/examples/2.4.x/server-dart/examples/tablesdb/list.md index ef6722782..8be296075 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/list.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -DatabaseList result = await tablesDB.list( +models.DatabaseList result = await tablesDB.list( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-big-int-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-big-int-column.md index 3638e5b5e..b4dfaa3a7 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-big-int-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-big-int-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnBigint result = await tablesDB.updateBigIntColumn( +models.ColumnBigint result = await tablesDB.updateBigIntColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-boolean-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-boolean-column.md index f282f134d..0e14d4165 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-boolean-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-boolean-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnBoolean result = await tablesDB.updateBooleanColumn( +models.ColumnBoolean result = await tablesDB.updateBooleanColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-datetime-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-datetime-column.md index 5f40545fd..4619b9f54 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-datetime-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-datetime-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnDatetime result = await tablesDB.updateDatetimeColumn( +models.ColumnDatetime result = await tablesDB.updateDatetimeColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-email-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-email-column.md index 8f9bc613b..412586ee5 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-email-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-email-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnEmail result = await tablesDB.updateEmailColumn( +models.ColumnEmail result = await tablesDB.updateEmailColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-enum-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-enum-column.md index 8e2ed4e42..97203c0c9 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-enum-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-enum-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnEnum result = await tablesDB.updateEnumColumn( +models.ColumnEnum result = await tablesDB.updateEnumColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-float-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-float-column.md index 9cdc6670d..3cf8fa6e1 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-float-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-float-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnFloat result = await tablesDB.updateFloatColumn( +models.ColumnFloat result = await tablesDB.updateFloatColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-integer-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-integer-column.md index 9264c25b8..0681356dd 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-integer-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-integer-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnInteger result = await tablesDB.updateIntegerColumn( +models.ColumnInteger result = await tablesDB.updateIntegerColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-ip-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-ip-column.md index df4368e9b..d3a3e9296 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-ip-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-ip-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnIp result = await tablesDB.updateIpColumn( +models.ColumnIp result = await tablesDB.updateIpColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-line-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-line-column.md index beadc457b..c6e32fd69 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-line-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-line-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnLine result = await tablesDB.updateLineColumn( +models.ColumnLine result = await tablesDB.updateLineColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-longtext-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-longtext-column.md index 3cce90f78..b0be99838 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-longtext-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-longtext-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnLongtext result = await tablesDB.updateLongtextColumn( +models.ColumnLongtext result = await tablesDB.updateLongtextColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-mediumtext-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-mediumtext-column.md index 833043c19..2f68290b0 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-mediumtext-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-mediumtext-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnMediumtext result = await tablesDB.updateMediumtextColumn( +models.ColumnMediumtext result = await tablesDB.updateMediumtextColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-point-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-point-column.md index 0d970da99..532b25eb1 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-point-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-point-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnPoint result = await tablesDB.updatePointColumn( +models.ColumnPoint result = await tablesDB.updatePointColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-polygon-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-polygon-column.md index c19b82729..e09632bc6 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-polygon-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-polygon-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnPolygon result = await tablesDB.updatePolygonColumn( +models.ColumnPolygon result = await tablesDB.updatePolygonColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-relationship-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-relationship-column.md index 60008cb79..3ae448a2d 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-relationship-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-relationship-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnRelationship result = await tablesDB.updateRelationshipColumn( +models.ColumnRelationship result = await tablesDB.updateRelationshipColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-row.md b/examples/2.4.x/server-dart/examples/tablesdb/update-row.md index 514f740b5..cba956828 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-row.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-row.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.updateRow( +models.Row result = await tablesDB.updateRow( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', rowId: '<ROW_ID>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-rows.md b/examples/2.4.x/server-dart/examples/tablesdb/update-rows.md index 3d3730bce..95ce4e954 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-rows.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-rows.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -RowList result = await tablesDB.updateRows( +models.RowList result = await tablesDB.updateRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', data: { diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-string-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-string-column.md index 80c0a6be3..1ca2292b9 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-string-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-string-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnString result = await tablesDB.updateStringColumn( +models.ColumnString result = await tablesDB.updateStringColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-table.md b/examples/2.4.x/server-dart/examples/tablesdb/update-table.md index 217da3f41..eb0c1e03d 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-table.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-table.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Table result = await tablesDB.updateTable( +models.Table result = await tablesDB.updateTable( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', name: '<NAME>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-text-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-text-column.md index 6cb0f7ce8..17e5273ba 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-text-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-text-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnText result = await tablesDB.updateTextColumn( +models.ColumnText result = await tablesDB.updateTextColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-transaction.md b/examples/2.4.x/server-dart/examples/tablesdb/update-transaction.md index fbcafc8ab..b429ca1f0 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-transaction.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Transaction result = await tablesDB.updateTransaction( +models.Transaction result = await tablesDB.updateTransaction( transactionId: '<TRANSACTION_ID>', commit: false, // (optional) rollback: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-url-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-url-column.md index 98b4be9fa..588d7c0b7 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-url-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-url-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnUrl result = await tablesDB.updateUrlColumn( +models.ColumnUrl result = await tablesDB.updateUrlColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update-varchar-column.md b/examples/2.4.x/server-dart/examples/tablesdb/update-varchar-column.md index b9b7cce4e..cd3a08f3e 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update-varchar-column.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update-varchar-column.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -ColumnVarchar result = await tablesDB.updateVarcharColumn( +models.ColumnVarchar result = await tablesDB.updateVarcharColumn( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/update.md b/examples/2.4.x/server-dart/examples/tablesdb/update.md index 6574bde3f..b10bbed87 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/update.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Database result = await tablesDB.update( +models.Database result = await tablesDB.update( databaseId: '<DATABASE_ID>', name: '<NAME>', // (optional) enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/tablesdb/upsert-row.md b/examples/2.4.x/server-dart/examples/tablesdb/upsert-row.md index 21f2734b2..f4503a42a 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/upsert-row.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/upsert-row.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -Row result = await tablesDB.upsertRow( +models.Row result = await tablesDB.upsertRow( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', rowId: '<ROW_ID>', diff --git a/examples/2.4.x/server-dart/examples/tablesdb/upsert-rows.md b/examples/2.4.x/server-dart/examples/tablesdb/upsert-rows.md index 9f7dda64c..4eb765818 100644 --- a/examples/2.4.x/server-dart/examples/tablesdb/upsert-rows.md +++ b/examples/2.4.x/server-dart/examples/tablesdb/upsert-rows.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,12 +9,12 @@ Client client = Client() TablesDB tablesDB = TablesDB(client); -RowList result = await tablesDB.upsertRows( +models.RowList result = await tablesDB.upsertRows( databaseId: '<DATABASE_ID>', tableId: '<TABLE_ID>', rows: [ { - "$id": "example1", + "\$id": "example1", "username": "walter.obrien", "email": "walter.obrien@example.com", "fullName": "Walter O'Brien", diff --git a/examples/2.4.x/server-dart/examples/teams/create-installation.md b/examples/2.4.x/server-dart/examples/teams/create-installation.md index e41c00f1c..25639a57d 100644 --- a/examples/2.4.x/server-dart/examples/teams/create-installation.md +++ b/examples/2.4.x/server-dart/examples/teams/create-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -AppInstallation result = await teams.createInstallation( +models.AppInstallation result = await teams.createInstallation( teamId: '<TEAM_ID>', appId: '<APP_ID>', authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/teams/create-membership.md b/examples/2.4.x/server-dart/examples/teams/create-membership.md index 5afcbc407..b3c4ca44c 100644 --- a/examples/2.4.x/server-dart/examples/teams/create-membership.md +++ b/examples/2.4.x/server-dart/examples/teams/create-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Membership result = await teams.createMembership( +models.Membership result = await teams.createMembership( teamId: '<TEAM_ID>', roles: ["editor"], email: 'email@example.com', // (optional) diff --git a/examples/2.4.x/server-dart/examples/teams/create.md b/examples/2.4.x/server-dart/examples/teams/create.md index 61bb5daa3..ad8e8bac3 100644 --- a/examples/2.4.x/server-dart/examples/teams/create.md +++ b/examples/2.4.x/server-dart/examples/teams/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Team result = await teams.create( +models.Team result = await teams.create( teamId: '<TEAM_ID>', name: '<NAME>', roles: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/teams/get-installation.md b/examples/2.4.x/server-dart/examples/teams/get-installation.md index 81c030f86..6aa10c679 100644 --- a/examples/2.4.x/server-dart/examples/teams/get-installation.md +++ b/examples/2.4.x/server-dart/examples/teams/get-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -AppInstallation result = await teams.getInstallation( +models.AppInstallation result = await teams.getInstallation( teamId: '<TEAM_ID>', installationId: '<INSTALLATION_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/teams/get-membership.md b/examples/2.4.x/server-dart/examples/teams/get-membership.md index b7a8200a8..4f3c4fc80 100644 --- a/examples/2.4.x/server-dart/examples/teams/get-membership.md +++ b/examples/2.4.x/server-dart/examples/teams/get-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Membership result = await teams.getMembership( +models.Membership result = await teams.getMembership( teamId: '<TEAM_ID>', membershipId: '<MEMBERSHIP_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/teams/get-prefs.md b/examples/2.4.x/server-dart/examples/teams/get-prefs.md index 482390cf6..a63530b20 100644 --- a/examples/2.4.x/server-dart/examples/teams/get-prefs.md +++ b/examples/2.4.x/server-dart/examples/teams/get-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Preferences result = await teams.getPrefs( +models.Preferences result = await teams.getPrefs( teamId: '<TEAM_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/teams/get.md b/examples/2.4.x/server-dart/examples/teams/get.md index cd426afcb..9f4efb9cd 100644 --- a/examples/2.4.x/server-dart/examples/teams/get.md +++ b/examples/2.4.x/server-dart/examples/teams/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Team result = await teams.get( +models.Team result = await teams.get( teamId: '<TEAM_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/teams/list-installations.md b/examples/2.4.x/server-dart/examples/teams/list-installations.md index 18f973e48..bf0cb1a20 100644 --- a/examples/2.4.x/server-dart/examples/teams/list-installations.md +++ b/examples/2.4.x/server-dart/examples/teams/list-installations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -AppInstallationList result = await teams.listInstallations( +models.AppInstallationList result = await teams.listInstallations( teamId: '<TEAM_ID>', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/teams/list-memberships.md b/examples/2.4.x/server-dart/examples/teams/list-memberships.md index 2f6400d9a..e5e65d3a2 100644 --- a/examples/2.4.x/server-dart/examples/teams/list-memberships.md +++ b/examples/2.4.x/server-dart/examples/teams/list-memberships.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -MembershipList result = await teams.listMemberships( +models.MembershipList result = await teams.listMemberships( teamId: '<TEAM_ID>', queries: [], // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/teams/list.md b/examples/2.4.x/server-dart/examples/teams/list.md index b056968ec..3a42e7b07 100644 --- a/examples/2.4.x/server-dart/examples/teams/list.md +++ b/examples/2.4.x/server-dart/examples/teams/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -TeamList result = await teams.list( +models.TeamList result = await teams.list( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/teams/update-installation.md b/examples/2.4.x/server-dart/examples/teams/update-installation.md index a9a02cb0b..5619654f4 100644 --- a/examples/2.4.x/server-dart/examples/teams/update-installation.md +++ b/examples/2.4.x/server-dart/examples/teams/update-installation.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -AppInstallation result = await teams.updateInstallation( +models.AppInstallation result = await teams.updateInstallation( teamId: '<TEAM_ID>', installationId: '<INSTALLATION_ID>', authorizationDetails: '<AUTHORIZATION_DETAILS>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/teams/update-membership-status.md b/examples/2.4.x/server-dart/examples/teams/update-membership-status.md index a5ec5e1c0..261650d30 100644 --- a/examples/2.4.x/server-dart/examples/teams/update-membership-status.md +++ b/examples/2.4.x/server-dart/examples/teams/update-membership-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Membership result = await teams.updateMembershipStatus( +models.Membership result = await teams.updateMembershipStatus( teamId: '<TEAM_ID>', membershipId: '<MEMBERSHIP_ID>', userId: '<USER_ID>', diff --git a/examples/2.4.x/server-dart/examples/teams/update-membership.md b/examples/2.4.x/server-dart/examples/teams/update-membership.md index 96dc8034e..191788b43 100644 --- a/examples/2.4.x/server-dart/examples/teams/update-membership.md +++ b/examples/2.4.x/server-dart/examples/teams/update-membership.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Membership result = await teams.updateMembership( +models.Membership result = await teams.updateMembership( teamId: '<TEAM_ID>', membershipId: '<MEMBERSHIP_ID>', roles: ["editor"], diff --git a/examples/2.4.x/server-dart/examples/teams/update-name.md b/examples/2.4.x/server-dart/examples/teams/update-name.md index 84069773e..9737f3c3e 100644 --- a/examples/2.4.x/server-dart/examples/teams/update-name.md +++ b/examples/2.4.x/server-dart/examples/teams/update-name.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Team result = await teams.updateName( +models.Team result = await teams.updateName( teamId: '<TEAM_ID>', name: '<NAME>', ); diff --git a/examples/2.4.x/server-dart/examples/teams/update-prefs.md b/examples/2.4.x/server-dart/examples/teams/update-prefs.md index e51b2da05..11ae2c868 100644 --- a/examples/2.4.x/server-dart/examples/teams/update-prefs.md +++ b/examples/2.4.x/server-dart/examples/teams/update-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Teams teams = Teams(client); -Preferences result = await teams.updatePrefs( +models.Preferences result = await teams.updatePrefs( teamId: '<TEAM_ID>', prefs: {}, ); diff --git a/examples/2.4.x/server-dart/examples/tokens/create-file-token.md b/examples/2.4.x/server-dart/examples/tokens/create-file-token.md index 5348736a2..c665d3a66 100644 --- a/examples/2.4.x/server-dart/examples/tokens/create-file-token.md +++ b/examples/2.4.x/server-dart/examples/tokens/create-file-token.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Tokens tokens = Tokens(client); -ResourceToken result = await tokens.createFileToken( +models.ResourceToken result = await tokens.createFileToken( bucketId: '<BUCKET_ID>', fileId: '<FILE_ID>', expire: '2020-10-15T06:38:00.000+00:00', // (optional) diff --git a/examples/2.4.x/server-dart/examples/tokens/get.md b/examples/2.4.x/server-dart/examples/tokens/get.md index 53bbd181e..c8a87f2ab 100644 --- a/examples/2.4.x/server-dart/examples/tokens/get.md +++ b/examples/2.4.x/server-dart/examples/tokens/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Tokens tokens = Tokens(client); -ResourceToken result = await tokens.get( +models.ResourceToken result = await tokens.get( tokenId: '<TOKEN_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/tokens/list.md b/examples/2.4.x/server-dart/examples/tokens/list.md index 17fb2ff80..23f4e042c 100644 --- a/examples/2.4.x/server-dart/examples/tokens/list.md +++ b/examples/2.4.x/server-dart/examples/tokens/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Tokens tokens = Tokens(client); -ResourceTokenList result = await tokens.list( +models.ResourceTokenList result = await tokens.list( bucketId: '<BUCKET_ID>', fileId: '<FILE_ID>', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/tokens/update.md b/examples/2.4.x/server-dart/examples/tokens/update.md index 6c0eb572a..b8e720f3d 100644 --- a/examples/2.4.x/server-dart/examples/tokens/update.md +++ b/examples/2.4.x/server-dart/examples/tokens/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Tokens tokens = Tokens(client); -ResourceToken result = await tokens.update( +models.ResourceToken result = await tokens.update( tokenId: '<TOKEN_ID>', expire: '2020-10-15T06:38:00.000+00:00', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/users/create-argon-2-user.md b/examples/2.4.x/server-dart/examples/users/create-argon-2-user.md index 2cddf2fa6..15f5ce8aa 100644 --- a/examples/2.4.x/server-dart/examples/users/create-argon-2-user.md +++ b/examples/2.4.x/server-dart/examples/users/create-argon-2-user.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.createArgon2User( +models.User result = await users.createArgon2User( userId: '<USER_ID>', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/users/create-bcrypt-user.md b/examples/2.4.x/server-dart/examples/users/create-bcrypt-user.md index ca5bdf564..86237997e 100644 --- a/examples/2.4.x/server-dart/examples/users/create-bcrypt-user.md +++ b/examples/2.4.x/server-dart/examples/users/create-bcrypt-user.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.createBcryptUser( +models.User result = await users.createBcryptUser( userId: '<USER_ID>', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/users/create-jwt.md b/examples/2.4.x/server-dart/examples/users/create-jwt.md index 42b174b77..b6b9bdefb 100644 --- a/examples/2.4.x/server-dart/examples/users/create-jwt.md +++ b/examples/2.4.x/server-dart/examples/users/create-jwt.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -Jwt result = await users.createJWT( +models.Jwt result = await users.createJWT( userId: '<USER_ID>', sessionId: 'recent()', // (optional) duration: 0, // (optional) diff --git a/examples/2.4.x/server-dart/examples/users/create-md-5-user.md b/examples/2.4.x/server-dart/examples/users/create-md-5-user.md index 490b26a6e..3cfd77bd6 100644 --- a/examples/2.4.x/server-dart/examples/users/create-md-5-user.md +++ b/examples/2.4.x/server-dart/examples/users/create-md-5-user.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.createMD5User( +models.User result = await users.createMD5User( userId: '<USER_ID>', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/users/create-mfa-recovery-codes.md b/examples/2.4.x/server-dart/examples/users/create-mfa-recovery-codes.md index 9251cb504..d51f6ab49 100644 --- a/examples/2.4.x/server-dart/examples/users/create-mfa-recovery-codes.md +++ b/examples/2.4.x/server-dart/examples/users/create-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -MfaRecoveryCodes result = await users.createMFARecoveryCodes( +models.MfaRecoveryCodes result = await users.createMFARecoveryCodes( userId: '<USER_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/users/create-ph-pass-user.md b/examples/2.4.x/server-dart/examples/users/create-ph-pass-user.md index 74105bcf3..25e350fcc 100644 --- a/examples/2.4.x/server-dart/examples/users/create-ph-pass-user.md +++ b/examples/2.4.x/server-dart/examples/users/create-ph-pass-user.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.createPHPassUser( +models.User result = await users.createPHPassUser( userId: '<USER_ID>', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/users/create-scrypt-modified-user.md b/examples/2.4.x/server-dart/examples/users/create-scrypt-modified-user.md index 5c6301854..dc8ea15cb 100644 --- a/examples/2.4.x/server-dart/examples/users/create-scrypt-modified-user.md +++ b/examples/2.4.x/server-dart/examples/users/create-scrypt-modified-user.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.createScryptModifiedUser( +models.User result = await users.createScryptModifiedUser( userId: '<USER_ID>', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/users/create-scrypt-user.md b/examples/2.4.x/server-dart/examples/users/create-scrypt-user.md index 66d495218..ac96800ec 100644 --- a/examples/2.4.x/server-dart/examples/users/create-scrypt-user.md +++ b/examples/2.4.x/server-dart/examples/users/create-scrypt-user.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.createScryptUser( +models.User result = await users.createScryptUser( userId: '<USER_ID>', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/users/create-session.md b/examples/2.4.x/server-dart/examples/users/create-session.md index f782dbefe..8da31caf2 100644 --- a/examples/2.4.x/server-dart/examples/users/create-session.md +++ b/examples/2.4.x/server-dart/examples/users/create-session.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -Session result = await users.createSession( +models.Session result = await users.createSession( userId: '<USER_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/users/create-sha-user.md b/examples/2.4.x/server-dart/examples/users/create-sha-user.md index 65adca609..0811a27b8 100644 --- a/examples/2.4.x/server-dart/examples/users/create-sha-user.md +++ b/examples/2.4.x/server-dart/examples/users/create-sha-user.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Users users = Users(client); -User result = await users.createSHAUser( +models.User result = await users.createSHAUser( userId: '<USER_ID>', email: 'email@example.com', password: 'password', diff --git a/examples/2.4.x/server-dart/examples/users/create-target.md b/examples/2.4.x/server-dart/examples/users/create-target.md index ea9c4014a..ee0054ffd 100644 --- a/examples/2.4.x/server-dart/examples/users/create-target.md +++ b/examples/2.4.x/server-dart/examples/users/create-target.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() Users users = Users(client); -Target result = await users.createTarget( +models.Target result = await users.createTarget( userId: '<USER_ID>', targetId: '<TARGET_ID>', providerType: enums.MessagingProviderType.email, diff --git a/examples/2.4.x/server-dart/examples/users/create-token.md b/examples/2.4.x/server-dart/examples/users/create-token.md index c79c21cc6..8b3a99e93 100644 --- a/examples/2.4.x/server-dart/examples/users/create-token.md +++ b/examples/2.4.x/server-dart/examples/users/create-token.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -Token result = await users.createToken( +models.Token result = await users.createToken( userId: '<USER_ID>', length: 4, // (optional) expire: 60, // (optional) diff --git a/examples/2.4.x/server-dart/examples/users/create.md b/examples/2.4.x/server-dart/examples/users/create.md index 1bbccb8ce..d9412fafb 100644 --- a/examples/2.4.x/server-dart/examples/users/create.md +++ b/examples/2.4.x/server-dart/examples/users/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.create( +models.User result = await users.create( userId: '<USER_ID>', email: 'email@example.com', // (optional) phone: '+12065550100', // (optional) diff --git a/examples/2.4.x/server-dart/examples/users/get-mfa-challenge.md b/examples/2.4.x/server-dart/examples/users/get-mfa-challenge.md index 0738433dc..c76da159d 100644 --- a/examples/2.4.x/server-dart/examples/users/get-mfa-challenge.md +++ b/examples/2.4.x/server-dart/examples/users/get-mfa-challenge.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -MfaChallengeSecret result = await users.getMFAChallenge( +models.MfaChallengeSecret result = await users.getMFAChallenge( userId: '<USER_ID>', challengeId: '<CHALLENGE_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/users/get-mfa-recovery-codes.md b/examples/2.4.x/server-dart/examples/users/get-mfa-recovery-codes.md index 72fb5b9eb..f1e7a9065 100644 --- a/examples/2.4.x/server-dart/examples/users/get-mfa-recovery-codes.md +++ b/examples/2.4.x/server-dart/examples/users/get-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -MfaRecoveryCodes result = await users.getMFARecoveryCodes( +models.MfaRecoveryCodes result = await users.getMFARecoveryCodes( userId: '<USER_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/users/get-prefs.md b/examples/2.4.x/server-dart/examples/users/get-prefs.md index c8f314c6f..b2a3488ad 100644 --- a/examples/2.4.x/server-dart/examples/users/get-prefs.md +++ b/examples/2.4.x/server-dart/examples/users/get-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -Preferences result = await users.getPrefs( +models.Preferences result = await users.getPrefs( userId: '<USER_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/users/get-target.md b/examples/2.4.x/server-dart/examples/users/get-target.md index f765ada56..2ca9dedb9 100644 --- a/examples/2.4.x/server-dart/examples/users/get-target.md +++ b/examples/2.4.x/server-dart/examples/users/get-target.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -Target result = await users.getTarget( +models.Target result = await users.getTarget( userId: '<USER_ID>', targetId: '<TARGET_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/users/get.md b/examples/2.4.x/server-dart/examples/users/get.md index 1ce98396b..40ba4029e 100644 --- a/examples/2.4.x/server-dart/examples/users/get.md +++ b/examples/2.4.x/server-dart/examples/users/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.get( +models.User result = await users.get( userId: '<USER_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/users/list-identities.md b/examples/2.4.x/server-dart/examples/users/list-identities.md index a6d570f1e..64d2dee73 100644 --- a/examples/2.4.x/server-dart/examples/users/list-identities.md +++ b/examples/2.4.x/server-dart/examples/users/list-identities.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -IdentityList result = await users.listIdentities( +models.IdentityList result = await users.listIdentities( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/users/list-memberships.md b/examples/2.4.x/server-dart/examples/users/list-memberships.md index b6b7f7cac..f80f34516 100644 --- a/examples/2.4.x/server-dart/examples/users/list-memberships.md +++ b/examples/2.4.x/server-dart/examples/users/list-memberships.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -MembershipList result = await users.listMemberships( +models.MembershipList result = await users.listMemberships( userId: '<USER_ID>', queries: [], // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/users/list-mfa-factors.md b/examples/2.4.x/server-dart/examples/users/list-mfa-factors.md index f8b1db82c..ee8d1abcd 100644 --- a/examples/2.4.x/server-dart/examples/users/list-mfa-factors.md +++ b/examples/2.4.x/server-dart/examples/users/list-mfa-factors.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -MfaFactors result = await users.listMFAFactors( +models.MfaFactors result = await users.listMFAFactors( userId: '<USER_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/users/list-sessions.md b/examples/2.4.x/server-dart/examples/users/list-sessions.md index abbf7932c..4709070bf 100644 --- a/examples/2.4.x/server-dart/examples/users/list-sessions.md +++ b/examples/2.4.x/server-dart/examples/users/list-sessions.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -SessionList result = await users.listSessions( +models.SessionList result = await users.listSessions( userId: '<USER_ID>', total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/users/list-targets.md b/examples/2.4.x/server-dart/examples/users/list-targets.md index 3014b8de1..42bfa1b42 100644 --- a/examples/2.4.x/server-dart/examples/users/list-targets.md +++ b/examples/2.4.x/server-dart/examples/users/list-targets.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -TargetList result = await users.listTargets( +models.TargetList result = await users.listTargets( userId: '<USER_ID>', queries: [], // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/users/list.md b/examples/2.4.x/server-dart/examples/users/list.md index bb00e0cfe..786cc3c91 100644 --- a/examples/2.4.x/server-dart/examples/users/list.md +++ b/examples/2.4.x/server-dart/examples/users/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -UserList result = await users.list( +models.UserList result = await users.list( queries: [], // (optional) search: '<SEARCH>', // (optional) total: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/users/update-email-verification.md b/examples/2.4.x/server-dart/examples/users/update-email-verification.md index 636afc107..a53eae0d3 100644 --- a/examples/2.4.x/server-dart/examples/users/update-email-verification.md +++ b/examples/2.4.x/server-dart/examples/users/update-email-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updateEmailVerification( +models.User result = await users.updateEmailVerification( userId: '<USER_ID>', emailVerification: false, ); diff --git a/examples/2.4.x/server-dart/examples/users/update-email.md b/examples/2.4.x/server-dart/examples/users/update-email.md index 0bd3d61e1..1d166faa8 100644 --- a/examples/2.4.x/server-dart/examples/users/update-email.md +++ b/examples/2.4.x/server-dart/examples/users/update-email.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updateEmail( +models.User result = await users.updateEmail( userId: '<USER_ID>', email: 'email@example.com', ); diff --git a/examples/2.4.x/server-dart/examples/users/update-impersonator.md b/examples/2.4.x/server-dart/examples/users/update-impersonator.md index 6d1d96452..80565da2b 100644 --- a/examples/2.4.x/server-dart/examples/users/update-impersonator.md +++ b/examples/2.4.x/server-dart/examples/users/update-impersonator.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updateImpersonator( +models.User result = await users.updateImpersonator( userId: '<USER_ID>', impersonator: false, ); diff --git a/examples/2.4.x/server-dart/examples/users/update-labels.md b/examples/2.4.x/server-dart/examples/users/update-labels.md index a47cd2e74..c52c8731c 100644 --- a/examples/2.4.x/server-dart/examples/users/update-labels.md +++ b/examples/2.4.x/server-dart/examples/users/update-labels.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updateLabels( +models.User result = await users.updateLabels( userId: '<USER_ID>', labels: ["subscriber"], ); diff --git a/examples/2.4.x/server-dart/examples/users/update-mfa-recovery-codes.md b/examples/2.4.x/server-dart/examples/users/update-mfa-recovery-codes.md index a08fc361d..61dd0acbc 100644 --- a/examples/2.4.x/server-dart/examples/users/update-mfa-recovery-codes.md +++ b/examples/2.4.x/server-dart/examples/users/update-mfa-recovery-codes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -MfaRecoveryCodes result = await users.updateMFARecoveryCodes( +models.MfaRecoveryCodes result = await users.updateMFARecoveryCodes( userId: '<USER_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/users/update-mfa.md b/examples/2.4.x/server-dart/examples/users/update-mfa.md index cd67922e9..18e2619e1 100644 --- a/examples/2.4.x/server-dart/examples/users/update-mfa.md +++ b/examples/2.4.x/server-dart/examples/users/update-mfa.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updateMFA( +models.User result = await users.updateMFA( userId: '<USER_ID>', mfa: false, ); diff --git a/examples/2.4.x/server-dart/examples/users/update-name.md b/examples/2.4.x/server-dart/examples/users/update-name.md index 4a67672d4..059d3c892 100644 --- a/examples/2.4.x/server-dart/examples/users/update-name.md +++ b/examples/2.4.x/server-dart/examples/users/update-name.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updateName( +models.User result = await users.updateName( userId: '<USER_ID>', name: '<NAME>', ); diff --git a/examples/2.4.x/server-dart/examples/users/update-password.md b/examples/2.4.x/server-dart/examples/users/update-password.md index 4968bae42..80ca98bfe 100644 --- a/examples/2.4.x/server-dart/examples/users/update-password.md +++ b/examples/2.4.x/server-dart/examples/users/update-password.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updatePassword( +models.User result = await users.updatePassword( userId: '<USER_ID>', password: 'password', ); diff --git a/examples/2.4.x/server-dart/examples/users/update-phone-verification.md b/examples/2.4.x/server-dart/examples/users/update-phone-verification.md index 14f91aeb3..c607b0f46 100644 --- a/examples/2.4.x/server-dart/examples/users/update-phone-verification.md +++ b/examples/2.4.x/server-dart/examples/users/update-phone-verification.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updatePhoneVerification( +models.User result = await users.updatePhoneVerification( userId: '<USER_ID>', phoneVerification: false, ); diff --git a/examples/2.4.x/server-dart/examples/users/update-phone.md b/examples/2.4.x/server-dart/examples/users/update-phone.md index 3eb43b1e1..f4df4b679 100644 --- a/examples/2.4.x/server-dart/examples/users/update-phone.md +++ b/examples/2.4.x/server-dart/examples/users/update-phone.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updatePhone( +models.User result = await users.updatePhone( userId: '<USER_ID>', number: '+12065550100', ); diff --git a/examples/2.4.x/server-dart/examples/users/update-prefs.md b/examples/2.4.x/server-dart/examples/users/update-prefs.md index e8b7e7e82..77942cd30 100644 --- a/examples/2.4.x/server-dart/examples/users/update-prefs.md +++ b/examples/2.4.x/server-dart/examples/users/update-prefs.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -Preferences result = await users.updatePrefs( +models.Preferences result = await users.updatePrefs( userId: '<USER_ID>', prefs: {}, ); diff --git a/examples/2.4.x/server-dart/examples/users/update-status.md b/examples/2.4.x/server-dart/examples/users/update-status.md index 3d4741872..66722185f 100644 --- a/examples/2.4.x/server-dart/examples/users/update-status.md +++ b/examples/2.4.x/server-dart/examples/users/update-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -User result = await users.updateStatus( +models.User result = await users.updateStatus( userId: '<USER_ID>', status: false, ); diff --git a/examples/2.4.x/server-dart/examples/users/update-target.md b/examples/2.4.x/server-dart/examples/users/update-target.md index f15e170fb..f887063ae 100644 --- a/examples/2.4.x/server-dart/examples/users/update-target.md +++ b/examples/2.4.x/server-dart/examples/users/update-target.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Users users = Users(client); -Target result = await users.updateTarget( +models.Target result = await users.updateTarget( userId: '<USER_ID>', targetId: '<TARGET_ID>', identifier: '<IDENTIFIER>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create-collection.md b/examples/2.4.x/server-dart/examples/vectorsdb/create-collection.md index 2b9952b8d..708c672e8 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create-collection.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -VectorsdbCollection result = await vectorsDB.createCollection( +models.VectorsdbCollection result = await vectorsDB.createCollection( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create-document.md b/examples/2.4.x/server-dart/examples/vectorsdb/create-document.md index 5a69c5387..b3b08aaa9 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create-document.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Document result = await vectorsDB.createDocument( +models.Document result = await vectorsDB.createDocument( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', documentId: '<DOCUMENT_ID>', diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create-documents.md b/examples/2.4.x/server-dart/examples/vectorsdb/create-documents.md index 9673b5c1d..0c925167f 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create-documents.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,12 +9,12 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DocumentList result = await vectorsDB.createDocuments( +models.DocumentList result = await vectorsDB.createDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', documents: [ { - "$id": "example1", + "\$id": "example1", "embeddings": [ 0.12, -0.55, diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create-failover.md b/examples/2.4.x/server-dart/examples/vectorsdb/create-failover.md index 1a5ae080f..8aff9fd00 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create-failover.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create-failover.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DedicatedDatabase result = await vectorsDB.createFailover( +models.DedicatedDatabase result = await vectorsDB.createFailover( databaseId: '<DATABASE_ID>', targetReplicaId: '<TARGET_REPLICA_ID>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create-index.md b/examples/2.4.x/server-dart/examples/vectorsdb/create-index.md index 4c277f702..f75902d4d 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create-index.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create-index.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/enums.dart' as enums; Client client = Client() @@ -9,7 +10,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Index result = await vectorsDB.createIndex( +models.Index result = await vectorsDB.createIndex( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create-operations.md b/examples/2.4.x/server-dart/examples/vectorsdb/create-operations.md index c1f821da3..32d1630ae 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create-operations.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Transaction result = await vectorsDB.createOperations( +models.Transaction result = await vectorsDB.createOperations( transactionId: '<TRANSACTION_ID>', operations: [ { diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create-query.md b/examples/2.4.x/server-dart/examples/vectorsdb/create-query.md index f94dd3236..cea8a7be9 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create-query.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create-query.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DocumentList result = await vectorsDB.createQuery( +models.DocumentList result = await vectorsDB.createQuery( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create-transaction.md b/examples/2.4.x/server-dart/examples/vectorsdb/create-transaction.md index a049d5e72..cd3c24796 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create-transaction.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Transaction result = await vectorsDB.createTransaction( +models.Transaction result = await vectorsDB.createTransaction( ttl: 60, // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/create.md b/examples/2.4.x/server-dart/examples/vectorsdb/create.md index 94be24e5d..0a52a0a5f 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/create.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Database result = await vectorsDB.create( +models.Database result = await vectorsDB.create( databaseId: '<DATABASE_ID>', name: '<NAME>', enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/delete-documents.md b/examples/2.4.x/server-dart/examples/vectorsdb/delete-documents.md index 270074bca..73a9fa6ed 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/delete-documents.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/delete-documents.md @@ -11,7 +11,7 @@ VectorsDB vectorsDB = VectorsDB(client); await vectorsDB.deleteDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', - queries: ["{\"method\":\"equal\", \"attribute\":\"$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // (optional) + queries: ["{\"method\":\"equal\", \"attribute\":\"\$id\", \"values\":[\"<DOCUMENT_ID>\"]}"], // (optional) transactionId: '<TRANSACTION_ID>', // (optional) ); ``` diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/get-collection.md b/examples/2.4.x/server-dart/examples/vectorsdb/get-collection.md index 8fe629229..1b7c5eee1 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/get-collection.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/get-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -VectorsdbCollection result = await vectorsDB.getCollection( +models.VectorsdbCollection result = await vectorsDB.getCollection( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', ); diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/get-document.md b/examples/2.4.x/server-dart/examples/vectorsdb/get-document.md index f6e88e0be..27cb57c2b 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/get-document.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/get-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Document result = await vectorsDB.getDocument( +models.Document result = await vectorsDB.getDocument( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', documentId: '<DOCUMENT_ID>', diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/get-index.md b/examples/2.4.x/server-dart/examples/vectorsdb/get-index.md index ebfa90328..76751f42b 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/get-index.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/get-index.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Index result = await vectorsDB.getIndex( +models.Index result = await vectorsDB.getIndex( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', key: '<KEY>', diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/get-replicas.md b/examples/2.4.x/server-dart/examples/vectorsdb/get-replicas.md index cf402372c..6274b69f7 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/get-replicas.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/get-replicas.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DedicatedDatabaseReplicas result = await vectorsDB.getReplicas( +models.DedicatedDatabaseReplicas result = await vectorsDB.getReplicas( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/get-status.md b/examples/2.4.x/server-dart/examples/vectorsdb/get-status.md index e5364a3b3..28d9bf94f 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/get-status.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/get-status.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DatabaseStatus result = await vectorsDB.getStatus( +models.DatabaseStatus result = await vectorsDB.getStatus( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/get-transaction.md b/examples/2.4.x/server-dart/examples/vectorsdb/get-transaction.md index 513d4997e..dc6b43350 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/get-transaction.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/get-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Transaction result = await vectorsDB.getTransaction( +models.Transaction result = await vectorsDB.getTransaction( transactionId: '<TRANSACTION_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/get.md b/examples/2.4.x/server-dart/examples/vectorsdb/get.md index 6498956a7..aa3bebe17 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/get.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Database result = await vectorsDB.get( +models.Database result = await vectorsDB.get( databaseId: '<DATABASE_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/list-collections.md b/examples/2.4.x/server-dart/examples/vectorsdb/list-collections.md index ae03da41e..6af969855 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/list-collections.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/list-collections.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -VectorsdbCollectionList result = await vectorsDB.listCollections( +models.VectorsdbCollectionList result = await vectorsDB.listCollections( databaseId: '<DATABASE_ID>', queries: [], // (optional) search: '<SEARCH>', // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/list-documents.md b/examples/2.4.x/server-dart/examples/vectorsdb/list-documents.md index 596a4c0c4..1cb55e6a4 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/list-documents.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/list-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DocumentList result = await vectorsDB.listDocuments( +models.DocumentList result = await vectorsDB.listDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/list-indexes.md b/examples/2.4.x/server-dart/examples/vectorsdb/list-indexes.md index 756abd4a9..883f01ff7 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/list-indexes.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/list-indexes.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -IndexList result = await vectorsDB.listIndexes( +models.IndexList result = await vectorsDB.listIndexes( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', queries: [], // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/list-operations.md b/examples/2.4.x/server-dart/examples/vectorsdb/list-operations.md index 9c55984b7..c82ce491c 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/list-operations.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/list-operations.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DedicatedDatabaseOperationList result = await vectorsDB.listOperations( +models.DedicatedDatabaseOperationList result = await vectorsDB.listOperations( databaseId: '<DATABASE_ID>', status: 'queued', // (optional) limit: 1, // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/list-specifications.md b/examples/2.4.x/server-dart/examples/vectorsdb/list-specifications.md index d285ea9d0..005876cb6 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/list-specifications.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/list-specifications.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,5 +9,5 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DedicatedDatabaseSpecificationList result = await vectorsDB.listSpecifications(); +models.DedicatedDatabaseSpecificationList result = await vectorsDB.listSpecifications(); ``` diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/list-transactions.md b/examples/2.4.x/server-dart/examples/vectorsdb/list-transactions.md index e23b48ea9..7b2901eb1 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/list-transactions.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/list-transactions.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -TransactionList result = await vectorsDB.listTransactions( +models.TransactionList result = await vectorsDB.listTransactions( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/list.md b/examples/2.4.x/server-dart/examples/vectorsdb/list.md index 581fa7403..d5ac3c547 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/list.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DatabaseList result = await vectorsDB.list( +models.DatabaseList result = await vectorsDB.list( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/update-collection.md b/examples/2.4.x/server-dart/examples/vectorsdb/update-collection.md index b1da6cfba..31f97d6f4 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/update-collection.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/update-collection.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -VectorsdbCollection result = await vectorsDB.updateCollection( +models.VectorsdbCollection result = await vectorsDB.updateCollection( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', name: '<NAME>', diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/update-document.md b/examples/2.4.x/server-dart/examples/vectorsdb/update-document.md index eac35a967..3e0900628 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/update-document.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/update-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Document result = await vectorsDB.updateDocument( +models.Document result = await vectorsDB.updateDocument( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', documentId: '<DOCUMENT_ID>', diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/update-documents.md b/examples/2.4.x/server-dart/examples/vectorsdb/update-documents.md index 221a5bc91..b728b9b38 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/update-documents.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/update-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DocumentList result = await vectorsDB.updateDocuments( +models.DocumentList result = await vectorsDB.updateDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', data: {}, // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/update-transaction.md b/examples/2.4.x/server-dart/examples/vectorsdb/update-transaction.md index dd08d5cdb..0d2e231ad 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/update-transaction.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/update-transaction.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Transaction result = await vectorsDB.updateTransaction( +models.Transaction result = await vectorsDB.updateTransaction( transactionId: '<TRANSACTION_ID>', commit: false, // (optional) rollback: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/update.md b/examples/2.4.x/server-dart/examples/vectorsdb/update.md index 4c876312d..1c108c23e 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/update.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Database result = await vectorsDB.update( +models.Database result = await vectorsDB.update( databaseId: '<DATABASE_ID>', name: '<NAME>', enabled: false, // (optional) diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/upsert-document.md b/examples/2.4.x/server-dart/examples/vectorsdb/upsert-document.md index 65f7f2bd8..e4b6cacf3 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/upsert-document.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/upsert-document.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; import 'package:dart_appwrite/permission.dart'; import 'package:dart_appwrite/role.dart'; @@ -10,7 +11,7 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -Document result = await vectorsDB.upsertDocument( +models.Document result = await vectorsDB.upsertDocument( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', documentId: '<DOCUMENT_ID>', diff --git a/examples/2.4.x/server-dart/examples/vectorsdb/upsert-documents.md b/examples/2.4.x/server-dart/examples/vectorsdb/upsert-documents.md index 37d1c97d0..d39b9fb55 100644 --- a/examples/2.4.x/server-dart/examples/vectorsdb/upsert-documents.md +++ b/examples/2.4.x/server-dart/examples/vectorsdb/upsert-documents.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,12 +9,12 @@ Client client = Client() VectorsDB vectorsDB = VectorsDB(client); -DocumentList result = await vectorsDB.upsertDocuments( +models.DocumentList result = await vectorsDB.upsertDocuments( databaseId: '<DATABASE_ID>', collectionId: '<COLLECTION_ID>', documents: [ { - "$id": "example1", + "\$id": "example1", "embeddings": [ 0.12, -0.55, diff --git a/examples/2.4.x/server-dart/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-dart/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..60e6c5c5b --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/create-bypass-rule.md @@ -0,0 +1,22 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleBypass result = await waf.createBypassRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // (optional) + description: '<DESCRIPTION>', // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-dart/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..da5ef736c --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/create-challenge-rule.md @@ -0,0 +1,25 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleChallenge result = await waf.createChallengeRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // (optional) + description: '<DESCRIPTION>', // (optional) + challengeType: 'compute', // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) + difficulty: 1, // (optional) + ttl: 900, // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/create-deny-rule.md b/examples/2.4.x/server-dart/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..c28076598 --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/create-deny-rule.md @@ -0,0 +1,22 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleDeny result = await waf.createDenyRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // (optional) + description: '<DESCRIPTION>', // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-dart/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..96884dafa --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,27 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleRateLimit result = await waf.createRateLimitRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + limit: 1, + interval: 1, + resourceId: '<RESOURCE_ID>', // (optional) + description: '<DESCRIPTION>', // (optional) + key: 'ip', // (optional) + strategy: 'fixedWindow', // (optional) + maxBucketSize: 1, // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-dart/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..1b96203a3 --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/create-redirect-rule.md @@ -0,0 +1,24 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleRedirect result = await waf.createRedirectRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + location: '<LOCATION>', + statusCode: 300, + resourceId: '<RESOURCE_ID>', // (optional) + description: '<DESCRIPTION>', // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/delete-rule.md b/examples/2.4.x/server-dart/examples/waf/delete-rule.md new file mode 100644 index 000000000..bfc47176d --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/delete-rule.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +await waf.deleteRule( + ruleId: '<RULE_ID>', +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/get-rule.md b/examples/2.4.x/server-dart/examples/waf/get-rule.md new file mode 100644 index 000000000..85d028fde --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/get-rule.md @@ -0,0 +1,14 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +dynamic result = await waf.getRule( + ruleId: '<RULE_ID>', +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/list-rules.md b/examples/2.4.x/server-dart/examples/waf/list-rules.md new file mode 100644 index 000000000..8e37eca98 --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/list-rules.md @@ -0,0 +1,17 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleList result = await waf.listRules( + queries: [], // (optional) + search: '<SEARCH>', // (optional) + total: false, // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-dart/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..65588cbf1 --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/update-bypass-rule.md @@ -0,0 +1,22 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleBypass result = await waf.updateBypassRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // (optional) + resourceId: '<RESOURCE_ID>', // (optional) + name: '<NAME>', // (optional) + description: '<DESCRIPTION>', // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-dart/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..1c3ea2a6c --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/update-challenge-rule.md @@ -0,0 +1,25 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleChallenge result = await waf.updateChallengeRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // (optional) + resourceId: '<RESOURCE_ID>', // (optional) + name: '<NAME>', // (optional) + description: '<DESCRIPTION>', // (optional) + challengeType: 'compute', // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) + difficulty: 1, // (optional) + ttl: 900, // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/update-deny-rule.md b/examples/2.4.x/server-dart/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..408aa8f52 --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/update-deny-rule.md @@ -0,0 +1,22 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleDeny result = await waf.updateDenyRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // (optional) + resourceId: '<RESOURCE_ID>', // (optional) + name: '<NAME>', // (optional) + description: '<DESCRIPTION>', // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-dart/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..6c46de453 --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,26 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleRateLimit result = await waf.updateRateLimitRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // (optional) + resourceId: '<RESOURCE_ID>', // (optional) + name: '<NAME>', // (optional) + description: '<DESCRIPTION>', // (optional) + limit: 1, // (optional) + interval: 1, // (optional) + key: 'ip', // (optional) + maxBucketSize: 1, // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-dart/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..b00cf3b69 --- /dev/null +++ b/examples/2.4.x/server-dart/examples/waf/update-redirect-rule.md @@ -0,0 +1,24 @@ +```dart +import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; + +Client client = Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +Waf waf = Waf(client); + +models.WafRuleRedirect result = await waf.updateRedirectRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // (optional) + resourceId: '<RESOURCE_ID>', // (optional) + name: '<NAME>', // (optional) + description: '<DESCRIPTION>', // (optional) + location: '<LOCATION>', // (optional) + statusCode: 300, // (optional) + priority: -100000, // (optional) + enabled: false, // (optional) + conditions: [], // (optional) +); +``` diff --git a/examples/2.4.x/server-dart/examples/webhooks/create.md b/examples/2.4.x/server-dart/examples/webhooks/create.md index 9f60e8cfc..9deafb599 100644 --- a/examples/2.4.x/server-dart/examples/webhooks/create.md +++ b/examples/2.4.x/server-dart/examples/webhooks/create.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Webhooks webhooks = Webhooks(client); -Webhook result = await webhooks.create( +models.Webhook result = await webhooks.create( webhookId: '<WEBHOOK_ID>', url: 'https://example.com/webhook', name: '<NAME>', diff --git a/examples/2.4.x/server-dart/examples/webhooks/get.md b/examples/2.4.x/server-dart/examples/webhooks/get.md index 60defa832..8fdc63cc3 100644 --- a/examples/2.4.x/server-dart/examples/webhooks/get.md +++ b/examples/2.4.x/server-dart/examples/webhooks/get.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Webhooks webhooks = Webhooks(client); -Webhook result = await webhooks.get( +models.Webhook result = await webhooks.get( webhookId: '<WEBHOOK_ID>', ); ``` diff --git a/examples/2.4.x/server-dart/examples/webhooks/list.md b/examples/2.4.x/server-dart/examples/webhooks/list.md index ea2d91e9c..35988abb0 100644 --- a/examples/2.4.x/server-dart/examples/webhooks/list.md +++ b/examples/2.4.x/server-dart/examples/webhooks/list.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Webhooks webhooks = Webhooks(client); -WebhookList result = await webhooks.list( +models.WebhookList result = await webhooks.list( queries: [], // (optional) total: false, // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/webhooks/update-secret.md b/examples/2.4.x/server-dart/examples/webhooks/update-secret.md index 9aab19bf3..88355f872 100644 --- a/examples/2.4.x/server-dart/examples/webhooks/update-secret.md +++ b/examples/2.4.x/server-dart/examples/webhooks/update-secret.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Webhooks webhooks = Webhooks(client); -Webhook result = await webhooks.updateSecret( +models.Webhook result = await webhooks.updateSecret( webhookId: '<WEBHOOK_ID>', secret: '<SECRET>', // (optional) ); diff --git a/examples/2.4.x/server-dart/examples/webhooks/update.md b/examples/2.4.x/server-dart/examples/webhooks/update.md index e4f7fd293..a991e1339 100644 --- a/examples/2.4.x/server-dart/examples/webhooks/update.md +++ b/examples/2.4.x/server-dart/examples/webhooks/update.md @@ -1,5 +1,6 @@ ```dart import 'package:dart_appwrite/dart_appwrite.dart'; +import 'package:dart_appwrite/models.dart' as models; Client client = Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint @@ -8,7 +9,7 @@ Client client = Client() Webhooks webhooks = Webhooks(client); -Webhook result = await webhooks.update( +models.Webhook result = await webhooks.update( webhookId: '<WEBHOOK_ID>', name: '<NAME>', url: 'https://example.com/webhook', diff --git a/examples/2.4.x/server-dotnet/examples/oauth2/authorize-post.md b/examples/2.4.x/server-dotnet/examples/oauth2/authorize-post.md index 7ef874c96..fbafee640 100644 --- a/examples/2.4.x/server-dotnet/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-dotnet/examples/oauth2/authorize-post.md @@ -22,7 +22,7 @@ Appwrite.Models.Oauth2Authorize result = await oauth2.AuthorizePost( prompt: "<PROMPT>", // optional max_age: 0, // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional - resource: "", // optional + resource: new List<string>(), // optional audience: "<AUDIENCE>", // optional request_uri: "<REQUEST_URI>" // optional ); diff --git a/examples/2.4.x/server-dotnet/examples/oauth2/authorize.md b/examples/2.4.x/server-dotnet/examples/oauth2/authorize.md index ab37830b8..124894c3f 100644 --- a/examples/2.4.x/server-dotnet/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-dotnet/examples/oauth2/authorize.md @@ -22,7 +22,7 @@ Appwrite.Models.Oauth2Authorize result = await oauth2.Authorize( prompt: "<PROMPT>", // optional max_age: 0, // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional - resource: "", // optional + resource: new List<string>(), // optional audience: "<AUDIENCE>", // optional request_uri: "<REQUEST_URI>" // optional ); diff --git a/examples/2.4.x/server-dotnet/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-dotnet/examples/oauth2/create-device-authorization.md index 94b4c3a1e..3413ca860 100644 --- a/examples/2.4.x/server-dotnet/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-dotnet/examples/oauth2/create-device-authorization.md @@ -14,7 +14,7 @@ Appwrite.Models.Oauth2DeviceAuthorization result = await oauth2.CreateDeviceAuth client_id: "<CLIENT_ID>", // optional scope: "<SCOPE>", // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional - resource: "", // optional + resource: new List<string>(), // optional audience: "<AUDIENCE>" // optional ); diff --git a/examples/2.4.x/server-dotnet/examples/oauth2/create-par.md b/examples/2.4.x/server-dotnet/examples/oauth2/create-par.md index 59858076b..5d2364629 100644 --- a/examples/2.4.x/server-dotnet/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-dotnet/examples/oauth2/create-par.md @@ -22,7 +22,7 @@ Appwrite.Models.Oauth2PAR result = await oauth2.CreatePAR( prompt: "<PROMPT>", // optional max_age: 0, // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional - resource: "", // optional + resource: new List<string>(), // optional audience: "<AUDIENCE>" // optional ); diff --git a/examples/2.4.x/server-dotnet/examples/oauth2/create-token.md b/examples/2.4.x/server-dotnet/examples/oauth2/create-token.md index 32fb35134..974793c15 100644 --- a/examples/2.4.x/server-dotnet/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-dotnet/examples/oauth2/create-token.md @@ -19,7 +19,7 @@ Appwrite.Models.Oauth2Token result = await oauth2.CreateToken( client_secret: "<CLIENT_SECRET>", // optional code_verifier: "<CODE_VERIFIER>", // optional redirect_uri: "https://example.com", // optional - resource: "", // optional + resource: new List<string>(), // optional audience: "<AUDIENCE>" // optional ); diff --git a/examples/2.4.x/server-dotnet/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-dotnet/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..571cea1e7 --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/create-bypass-rule.md @@ -0,0 +1,24 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleBypass result = await waf.CreateBypassRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>() // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-dotnet/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..6f58074ad --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/create-challenge-rule.md @@ -0,0 +1,27 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleChallenge result = await waf.CreateChallengeRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + challengeType: "compute", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>(), // optional + difficulty: 1, // optional + ttl: 900 // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/create-deny-rule.md b/examples/2.4.x/server-dotnet/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..efc8295ce --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/create-deny-rule.md @@ -0,0 +1,24 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleDeny result = await waf.CreateDenyRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>() // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-dotnet/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..24d0b60e7 --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,29 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleRateLimit result = await waf.CreateRateLimitRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + limit: 1, + interval: 1, + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + key: "ip", // optional + strategy: "fixedWindow", // optional + maxBucketSize: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>() // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-dotnet/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..e6615d2c4 --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/create-redirect-rule.md @@ -0,0 +1,26 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleRedirect result = await waf.CreateRedirectRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + location: "<LOCATION>", + statusCode: 300, + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>() // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/delete-rule.md b/examples/2.4.x/server-dotnet/examples/waf/delete-rule.md new file mode 100644 index 000000000..7cf05f3ce --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/delete-rule.md @@ -0,0 +1,17 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +await waf.DeleteRule( + ruleId: "<RULE_ID>" +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/get-rule.md b/examples/2.4.x/server-dotnet/examples/waf/get-rule.md new file mode 100644 index 000000000..33fba0fe5 --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/get-rule.md @@ -0,0 +1,17 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +object result = await waf.GetRule( + ruleId: "<RULE_ID>" +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/list-rules.md b/examples/2.4.x/server-dotnet/examples/waf/list-rules.md new file mode 100644 index 000000000..7f5ce3939 --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/list-rules.md @@ -0,0 +1,19 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleList result = await waf.ListRules( + queries: new List<string>(), // optional + search: "<SEARCH>", // optional + total: false // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-dotnet/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..c7ab6586b --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/update-bypass-rule.md @@ -0,0 +1,24 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleBypass result = await waf.UpdateBypassRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>() // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-dotnet/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..b4073fd6e --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/update-challenge-rule.md @@ -0,0 +1,27 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleChallenge result = await waf.UpdateChallengeRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + challengeType: "compute", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>(), // optional + difficulty: 1, // optional + ttl: 900 // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/update-deny-rule.md b/examples/2.4.x/server-dotnet/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..c18858496 --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/update-deny-rule.md @@ -0,0 +1,24 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleDeny result = await waf.UpdateDenyRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>() // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-dotnet/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..3b8f1b91c --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,28 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleRateLimit result = await waf.UpdateRateLimitRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + limit: 1, // optional + interval: 1, // optional + key: "ip", // optional + maxBucketSize: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>() // optional +); + +``` diff --git a/examples/2.4.x/server-dotnet/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-dotnet/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..900bb81a2 --- /dev/null +++ b/examples/2.4.x/server-dotnet/examples/waf/update-redirect-rule.md @@ -0,0 +1,26 @@ +```csharp +using Appwrite; +using Appwrite.Models; +using Appwrite.Services; + +Client client = new Client() + .SetEndPoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .SetProject("<YOUR_PROJECT_ID>") // Your project ID + .SetKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +Appwrite.Models.WafRuleRedirect result = await waf.UpdateRedirectRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + location: "<LOCATION>", // optional + statusCode: 300, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: new List<string>() // optional +); + +``` diff --git a/examples/2.4.x/server-go/examples/oauth2/authorize-post.md b/examples/2.4.x/server-go/examples/oauth2/authorize-post.md index 406358bba..a807308d3 100644 --- a/examples/2.4.x/server-go/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-go/examples/oauth2/authorize-post.md @@ -29,7 +29,7 @@ func main() { service.WithAuthorizePostPrompt("<PROMPT>"), service.WithAuthorizePostMaxAge(0), service.WithAuthorizePostAuthorizationDetails("<AUTHORIZATION_DETAILS>"), - service.WithAuthorizePostResource(""), + service.WithAuthorizePostResource([]string{"example"}), service.WithAuthorizePostAudience("<AUDIENCE>"), service.WithAuthorizePostRequestUri("<REQUEST_URI>"), ) diff --git a/examples/2.4.x/server-go/examples/oauth2/authorize.md b/examples/2.4.x/server-go/examples/oauth2/authorize.md index 432dc4b53..421709172 100644 --- a/examples/2.4.x/server-go/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-go/examples/oauth2/authorize.md @@ -29,7 +29,7 @@ func main() { service.WithAuthorizePrompt("<PROMPT>"), service.WithAuthorizeMaxAge(0), service.WithAuthorizeAuthorizationDetails("<AUTHORIZATION_DETAILS>"), - service.WithAuthorizeResource(""), + service.WithAuthorizeResource([]string{"example"}), service.WithAuthorizeAudience("<AUDIENCE>"), service.WithAuthorizeRequestUri("<REQUEST_URI>"), ) diff --git a/examples/2.4.x/server-go/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-go/examples/oauth2/create-device-authorization.md index f82ac6c8f..373620e7d 100644 --- a/examples/2.4.x/server-go/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-go/examples/oauth2/create-device-authorization.md @@ -21,7 +21,7 @@ func main() { service.WithCreateDeviceAuthorizationClientId("<CLIENT_ID>"), service.WithCreateDeviceAuthorizationScope("<SCOPE>"), service.WithCreateDeviceAuthorizationAuthorizationDetails("<AUTHORIZATION_DETAILS>"), - service.WithCreateDeviceAuthorizationResource(""), + service.WithCreateDeviceAuthorizationResource([]string{"example"}), service.WithCreateDeviceAuthorizationAudience("<AUDIENCE>"), ) fmt.Println(response, err) diff --git a/examples/2.4.x/server-go/examples/oauth2/create-par.md b/examples/2.4.x/server-go/examples/oauth2/create-par.md index 29a1ba3aa..95a884525 100644 --- a/examples/2.4.x/server-go/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-go/examples/oauth2/create-par.md @@ -29,7 +29,7 @@ func main() { service.WithCreatePARPrompt("<PROMPT>"), service.WithCreatePARMaxAge(0), service.WithCreatePARAuthorizationDetails("<AUTHORIZATION_DETAILS>"), - service.WithCreatePARResource(""), + service.WithCreatePARResource([]string{"example"}), service.WithCreatePARAudience("<AUDIENCE>"), ) fmt.Println(response, err) diff --git a/examples/2.4.x/server-go/examples/oauth2/create-token.md b/examples/2.4.x/server-go/examples/oauth2/create-token.md index 046abfd6c..81839814a 100644 --- a/examples/2.4.x/server-go/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-go/examples/oauth2/create-token.md @@ -26,7 +26,7 @@ func main() { service.WithCreateTokenClientSecret("<CLIENT_SECRET>"), service.WithCreateTokenCodeVerifier("<CODE_VERIFIER>"), service.WithCreateTokenRedirectUri("https://example.com"), - service.WithCreateTokenResource(""), + service.WithCreateTokenResource([]string{"example"}), service.WithCreateTokenAudience("<AUDIENCE>"), ) fmt.Println(response, err) diff --git a/examples/2.4.x/server-go/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-go/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..382af446f --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/create-bypass-rule.md @@ -0,0 +1,32 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.CreateBypassRule( + "<RULE_ID>", + "api", + "<NAME>", + service.WithCreateBypassRuleResourceId("<RESOURCE_ID>"), + service.WithCreateBypassRuleDescription("<DESCRIPTION>"), + service.WithCreateBypassRulePriority(-100000), + service.WithCreateBypassRuleEnabled(false), + service.WithCreateBypassRuleConditions([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-go/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..5080a0c67 --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/create-challenge-rule.md @@ -0,0 +1,35 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.CreateChallengeRule( + "<RULE_ID>", + "api", + "<NAME>", + service.WithCreateChallengeRuleResourceId("<RESOURCE_ID>"), + service.WithCreateChallengeRuleDescription("<DESCRIPTION>"), + service.WithCreateChallengeRuleChallengeType("compute"), + service.WithCreateChallengeRulePriority(-100000), + service.WithCreateChallengeRuleEnabled(false), + service.WithCreateChallengeRuleConditions([]string{"example"}), + service.WithCreateChallengeRuleDifficulty(1), + service.WithCreateChallengeRuleTtl(900), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/create-deny-rule.md b/examples/2.4.x/server-go/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..549292fdf --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/create-deny-rule.md @@ -0,0 +1,32 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.CreateDenyRule( + "<RULE_ID>", + "api", + "<NAME>", + service.WithCreateDenyRuleResourceId("<RESOURCE_ID>"), + service.WithCreateDenyRuleDescription("<DESCRIPTION>"), + service.WithCreateDenyRulePriority(-100000), + service.WithCreateDenyRuleEnabled(false), + service.WithCreateDenyRuleConditions([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-go/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..a47e2995b --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,37 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.CreateRateLimitRule( + "<RULE_ID>", + "api", + "<NAME>", + 1, + 1, + service.WithCreateRateLimitRuleResourceId("<RESOURCE_ID>"), + service.WithCreateRateLimitRuleDescription("<DESCRIPTION>"), + service.WithCreateRateLimitRuleKey("ip"), + service.WithCreateRateLimitRuleStrategy("fixedWindow"), + service.WithCreateRateLimitRuleMaxBucketSize(1), + service.WithCreateRateLimitRulePriority(-100000), + service.WithCreateRateLimitRuleEnabled(false), + service.WithCreateRateLimitRuleConditions([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-go/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..50402db21 --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/create-redirect-rule.md @@ -0,0 +1,34 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.CreateRedirectRule( + "<RULE_ID>", + "api", + "<NAME>", + "<LOCATION>", + 300, + service.WithCreateRedirectRuleResourceId("<RESOURCE_ID>"), + service.WithCreateRedirectRuleDescription("<DESCRIPTION>"), + service.WithCreateRedirectRulePriority(-100000), + service.WithCreateRedirectRuleEnabled(false), + service.WithCreateRedirectRuleConditions([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/delete-rule.md b/examples/2.4.x/server-go/examples/waf/delete-rule.md new file mode 100644 index 000000000..997b69944 --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/delete-rule.md @@ -0,0 +1,25 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.DeleteRule( + "<RULE_ID>", + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/get-rule.md b/examples/2.4.x/server-go/examples/waf/get-rule.md new file mode 100644 index 000000000..77b3bf110 --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/get-rule.md @@ -0,0 +1,25 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.GetRule( + "<RULE_ID>", + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/list-rules.md b/examples/2.4.x/server-go/examples/waf/list-rules.md new file mode 100644 index 000000000..b7ca68430 --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/list-rules.md @@ -0,0 +1,27 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.ListRules( + service.WithListRulesQueries([]string{"example"}), + service.WithListRulesSearch("<SEARCH>"), + service.WithListRulesTotal(false), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-go/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..1933b525d --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/update-bypass-rule.md @@ -0,0 +1,32 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.UpdateBypassRule( + "<RULE_ID>", + service.WithUpdateBypassRuleResourceType("api"), + service.WithUpdateBypassRuleResourceId("<RESOURCE_ID>"), + service.WithUpdateBypassRuleName("<NAME>"), + service.WithUpdateBypassRuleDescription("<DESCRIPTION>"), + service.WithUpdateBypassRulePriority(-100000), + service.WithUpdateBypassRuleEnabled(false), + service.WithUpdateBypassRuleConditions([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-go/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..059d618e6 --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/update-challenge-rule.md @@ -0,0 +1,35 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.UpdateChallengeRule( + "<RULE_ID>", + service.WithUpdateChallengeRuleResourceType("api"), + service.WithUpdateChallengeRuleResourceId("<RESOURCE_ID>"), + service.WithUpdateChallengeRuleName("<NAME>"), + service.WithUpdateChallengeRuleDescription("<DESCRIPTION>"), + service.WithUpdateChallengeRuleChallengeType("compute"), + service.WithUpdateChallengeRulePriority(-100000), + service.WithUpdateChallengeRuleEnabled(false), + service.WithUpdateChallengeRuleConditions([]string{"example"}), + service.WithUpdateChallengeRuleDifficulty(1), + service.WithUpdateChallengeRuleTtl(900), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/update-deny-rule.md b/examples/2.4.x/server-go/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..c9748fc6f --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/update-deny-rule.md @@ -0,0 +1,32 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.UpdateDenyRule( + "<RULE_ID>", + service.WithUpdateDenyRuleResourceType("api"), + service.WithUpdateDenyRuleResourceId("<RESOURCE_ID>"), + service.WithUpdateDenyRuleName("<NAME>"), + service.WithUpdateDenyRuleDescription("<DESCRIPTION>"), + service.WithUpdateDenyRulePriority(-100000), + service.WithUpdateDenyRuleEnabled(false), + service.WithUpdateDenyRuleConditions([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-go/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..67bb1ebc4 --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,36 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.UpdateRateLimitRule( + "<RULE_ID>", + service.WithUpdateRateLimitRuleResourceType("api"), + service.WithUpdateRateLimitRuleResourceId("<RESOURCE_ID>"), + service.WithUpdateRateLimitRuleName("<NAME>"), + service.WithUpdateRateLimitRuleDescription("<DESCRIPTION>"), + service.WithUpdateRateLimitRuleLimit(1), + service.WithUpdateRateLimitRuleInterval(1), + service.WithUpdateRateLimitRuleKey("ip"), + service.WithUpdateRateLimitRuleMaxBucketSize(1), + service.WithUpdateRateLimitRulePriority(-100000), + service.WithUpdateRateLimitRuleEnabled(false), + service.WithUpdateRateLimitRuleConditions([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-go/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-go/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..841e13ebd --- /dev/null +++ b/examples/2.4.x/server-go/examples/waf/update-redirect-rule.md @@ -0,0 +1,34 @@ +```go +package main + +import ( + "fmt" + + "github.com/appwrite/sdk-for-go/v7/appwrite" + "github.com/appwrite/sdk-for-go/v7/waf" +) + +func main() { + client := appwrite.NewClient( + appwrite.WithEndpoint("https://<REGION>.cloud.appwrite.io/v1"), + appwrite.WithProject("<YOUR_PROJECT_ID>"), + appwrite.WithKey("<YOUR_API_KEY>"), + ) + + service := waf.New(client) + + response, err := service.UpdateRedirectRule( + "<RULE_ID>", + service.WithUpdateRedirectRuleResourceType("api"), + service.WithUpdateRedirectRuleResourceId("<RESOURCE_ID>"), + service.WithUpdateRedirectRuleName("<NAME>"), + service.WithUpdateRedirectRuleDescription("<DESCRIPTION>"), + service.WithUpdateRedirectRuleLocation("<LOCATION>"), + service.WithUpdateRedirectRuleStatusCode(300), + service.WithUpdateRedirectRulePriority(-100000), + service.WithUpdateRedirectRuleEnabled(false), + service.WithUpdateRedirectRuleConditions([]string{"example"}), + ) + fmt.Println(response, err) +} +``` diff --git a/examples/2.4.x/server-graphql/examples/oauth2/authorize-post.md b/examples/2.4.x/server-graphql/examples/oauth2/authorize-post.md index ec6d490ae..8e345bbe6 100644 --- a/examples/2.4.x/server-graphql/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-graphql/examples/oauth2/authorize-post.md @@ -12,7 +12,7 @@ mutation { prompt: "<PROMPT>", maxAge: 0, authorizationDetails: "<AUTHORIZATION_DETAILS>", - resource: "", + resource: [], audience: "<AUDIENCE>", requestUri: "<REQUEST_URI>" ) { diff --git a/examples/2.4.x/server-graphql/examples/oauth2/authorize.md b/examples/2.4.x/server-graphql/examples/oauth2/authorize.md index f6e74d435..81c4f15f7 100644 --- a/examples/2.4.x/server-graphql/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-graphql/examples/oauth2/authorize.md @@ -12,7 +12,7 @@ query { prompt: "<PROMPT>", maxAge: 0, authorizationDetails: "<AUTHORIZATION_DETAILS>", - resource: "", + resource: [], audience: "<AUDIENCE>", requestUri: "<REQUEST_URI>" ) { diff --git a/examples/2.4.x/server-graphql/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-graphql/examples/oauth2/create-device-authorization.md index dddd74a5f..39fab7e91 100644 --- a/examples/2.4.x/server-graphql/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-graphql/examples/oauth2/create-device-authorization.md @@ -4,7 +4,7 @@ mutation { clientId: "<CLIENT_ID>", scope: "<SCOPE>", authorizationDetails: "<AUTHORIZATION_DETAILS>", - resource: "", + resource: [], audience: "<AUDIENCE>" ) { device_code diff --git a/examples/2.4.x/server-graphql/examples/oauth2/create-par.md b/examples/2.4.x/server-graphql/examples/oauth2/create-par.md index 7b360967c..0d7ef51f3 100644 --- a/examples/2.4.x/server-graphql/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-graphql/examples/oauth2/create-par.md @@ -12,7 +12,7 @@ mutation { prompt: "<PROMPT>", maxAge: 0, authorizationDetails: "<AUTHORIZATION_DETAILS>", - resource: "", + resource: [], audience: "<AUDIENCE>" ) { request_uri diff --git a/examples/2.4.x/server-graphql/examples/oauth2/create-token.md b/examples/2.4.x/server-graphql/examples/oauth2/create-token.md index 24f812bae..bcdb00e6d 100644 --- a/examples/2.4.x/server-graphql/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-graphql/examples/oauth2/create-token.md @@ -9,7 +9,7 @@ mutation { clientSecret: "<CLIENT_SECRET>", codeVerifier: "<CODE_VERIFIER>", redirectUri: "https://example.com", - resource: "", + resource: [], audience: "<AUDIENCE>" ) { access_token diff --git a/examples/2.4.x/server-graphql/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-graphql/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..14e187542 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/create-bypass-rule.md @@ -0,0 +1,29 @@ +```graphql +mutation { + wafCreateBypassRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", + description: "<DESCRIPTION>", + priority: -100000, + enabled: false, + conditions: [] + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-graphql/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..d1ebfc26c --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/create-challenge-rule.md @@ -0,0 +1,35 @@ +```graphql +mutation { + wafCreateChallengeRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", + description: "<DESCRIPTION>", + challengeType: "compute", + priority: -100000, + enabled: false, + conditions: [], + difficulty: 1, + ttl: 900 + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + challengeType + difficulty + ttl + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/create-deny-rule.md b/examples/2.4.x/server-graphql/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..5c4ee668f --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/create-deny-rule.md @@ -0,0 +1,29 @@ +```graphql +mutation { + wafCreateDenyRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", + description: "<DESCRIPTION>", + priority: -100000, + enabled: false, + conditions: [] + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-graphql/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..dbd7f47ec --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,39 @@ +```graphql +mutation { + wafCreateRateLimitRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + limit: 1, + interval: 1, + resourceId: "<RESOURCE_ID>", + description: "<DESCRIPTION>", + key: "ip", + strategy: "fixedWindow", + maxBucketSize: 1, + priority: -100000, + enabled: false, + conditions: [] + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + limit + interval + key + strategy + maxBucketSize + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-graphql/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..7889b41e1 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/create-redirect-rule.md @@ -0,0 +1,33 @@ +```graphql +mutation { + wafCreateRedirectRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + location: "<LOCATION>", + statusCode: 300, + resourceId: "<RESOURCE_ID>", + description: "<DESCRIPTION>", + priority: -100000, + enabled: false, + conditions: [] + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + location + statusCode + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/delete-rule.md b/examples/2.4.x/server-graphql/examples/waf/delete-rule.md new file mode 100644 index 000000000..c9890f784 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/delete-rule.md @@ -0,0 +1,9 @@ +```graphql +mutation { + wafDeleteRule( + ruleId: "<RULE_ID>" + ) { + status + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/get-rule.md b/examples/2.4.x/server-graphql/examples/waf/get-rule.md new file mode 100644 index 000000000..572437075 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/get-rule.md @@ -0,0 +1,22 @@ +```graphql +query { + wafGetRule( + ruleId: "<RULE_ID>" + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/list-rules.md b/examples/2.4.x/server-graphql/examples/waf/list-rules.md new file mode 100644 index 000000000..59d445019 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/list-rules.md @@ -0,0 +1,12 @@ +```graphql +query { + wafListRules( + queries: [], + search: "<SEARCH>", + total: false + ) { + total + rules + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-graphql/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..45e882444 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/update-bypass-rule.md @@ -0,0 +1,29 @@ +```graphql +mutation { + wafUpdateBypassRule( + ruleId: "<RULE_ID>", + resourceType: "api", + resourceId: "<RESOURCE_ID>", + name: "<NAME>", + description: "<DESCRIPTION>", + priority: -100000, + enabled: false, + conditions: [] + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-graphql/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..195f867d3 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/update-challenge-rule.md @@ -0,0 +1,35 @@ +```graphql +mutation { + wafUpdateChallengeRule( + ruleId: "<RULE_ID>", + resourceType: "api", + resourceId: "<RESOURCE_ID>", + name: "<NAME>", + description: "<DESCRIPTION>", + challengeType: "compute", + priority: -100000, + enabled: false, + conditions: [], + difficulty: 1, + ttl: 900 + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + challengeType + difficulty + ttl + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/update-deny-rule.md b/examples/2.4.x/server-graphql/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..38cc17774 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/update-deny-rule.md @@ -0,0 +1,29 @@ +```graphql +mutation { + wafUpdateDenyRule( + ruleId: "<RULE_ID>", + resourceType: "api", + resourceId: "<RESOURCE_ID>", + name: "<NAME>", + description: "<DESCRIPTION>", + priority: -100000, + enabled: false, + conditions: [] + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-graphql/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..b6ca95ded --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,38 @@ +```graphql +mutation { + wafUpdateRateLimitRule( + ruleId: "<RULE_ID>", + resourceType: "api", + resourceId: "<RESOURCE_ID>", + name: "<NAME>", + description: "<DESCRIPTION>", + limit: 1, + interval: 1, + key: "ip", + maxBucketSize: 1, + priority: -100000, + enabled: false, + conditions: [] + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + limit + interval + key + strategy + maxBucketSize + } +} +``` diff --git a/examples/2.4.x/server-graphql/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-graphql/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..217ebdf19 --- /dev/null +++ b/examples/2.4.x/server-graphql/examples/waf/update-redirect-rule.md @@ -0,0 +1,33 @@ +```graphql +mutation { + wafUpdateRedirectRule( + ruleId: "<RULE_ID>", + resourceType: "api", + resourceId: "<RESOURCE_ID>", + name: "<NAME>", + description: "<DESCRIPTION>", + location: "<LOCATION>", + statusCode: 300, + priority: -100000, + enabled: false, + conditions: [] + ) { + _id + _createdAt + _updatedAt + name + description + teamId + projectId + resourceType + resourceId + action + priority + enabled + conditions + config + location + statusCode + } +} +``` diff --git a/examples/2.4.x/server-kotlin/java/oauth2/authorize-post.md b/examples/2.4.x/server-kotlin/java/oauth2/authorize-post.md index 2d68706f0..df5502fbb 100644 --- a/examples/2.4.x/server-kotlin/java/oauth2/authorize-post.md +++ b/examples/2.4.x/server-kotlin/java/oauth2/authorize-post.md @@ -22,7 +22,7 @@ oauth2.authorizePost( "<PROMPT>", // prompt (optional) 0L, // max_age (optional) "<AUTHORIZATION_DETAILS>", // authorization_details (optional) - "", // resource (optional) + List.of(), // resource (optional) "<AUDIENCE>", // audience (optional) "<REQUEST_URI>", // request_uri (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.4.x/server-kotlin/java/oauth2/authorize.md b/examples/2.4.x/server-kotlin/java/oauth2/authorize.md index 1f5bbe42a..addce24a1 100644 --- a/examples/2.4.x/server-kotlin/java/oauth2/authorize.md +++ b/examples/2.4.x/server-kotlin/java/oauth2/authorize.md @@ -22,7 +22,7 @@ oauth2.authorize( "<PROMPT>", // prompt (optional) 0L, // max_age (optional) "<AUTHORIZATION_DETAILS>", // authorization_details (optional) - "", // resource (optional) + List.of(), // resource (optional) "<AUDIENCE>", // audience (optional) "<REQUEST_URI>", // request_uri (optional) new CoroutineCallback<>((result, error) -> { diff --git a/examples/2.4.x/server-kotlin/java/oauth2/create-device-authorization.md b/examples/2.4.x/server-kotlin/java/oauth2/create-device-authorization.md index 616fa537a..a5a4e3cca 100644 --- a/examples/2.4.x/server-kotlin/java/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-kotlin/java/oauth2/create-device-authorization.md @@ -14,7 +14,7 @@ oauth2.createDeviceAuthorization( "<CLIENT_ID>", // client_id (optional) "<SCOPE>", // scope (optional) "<AUTHORIZATION_DETAILS>", // authorization_details (optional) - "", // resource (optional) + List.of(), // resource (optional) "<AUDIENCE>", // audience (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.4.x/server-kotlin/java/oauth2/create-par.md b/examples/2.4.x/server-kotlin/java/oauth2/create-par.md index 360dfd023..42cec6443 100644 --- a/examples/2.4.x/server-kotlin/java/oauth2/create-par.md +++ b/examples/2.4.x/server-kotlin/java/oauth2/create-par.md @@ -22,7 +22,7 @@ oauth2.createPAR( "<PROMPT>", // prompt (optional) 0L, // max_age (optional) "<AUTHORIZATION_DETAILS>", // authorization_details (optional) - "", // resource (optional) + List.of(), // resource (optional) "<AUDIENCE>", // audience (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.4.x/server-kotlin/java/oauth2/create-token.md b/examples/2.4.x/server-kotlin/java/oauth2/create-token.md index c84721adc..84fe841d4 100644 --- a/examples/2.4.x/server-kotlin/java/oauth2/create-token.md +++ b/examples/2.4.x/server-kotlin/java/oauth2/create-token.md @@ -19,7 +19,7 @@ oauth2.createToken( "<CLIENT_SECRET>", // client_secret (optional) "<CODE_VERIFIER>", // code_verifier (optional) "https://example.com", // redirect_uri (optional) - "", // resource (optional) + List.of(), // resource (optional) "<AUDIENCE>", // audience (optional) new CoroutineCallback<>((result, error) -> { if (error != null) { diff --git a/examples/2.4.x/server-kotlin/java/waf/create-bypass-rule.md b/examples/2.4.x/server-kotlin/java/waf/create-bypass-rule.md new file mode 100644 index 000000000..52493368a --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/create-bypass-rule.md @@ -0,0 +1,32 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.createBypassRule( + "<RULE_ID>", // ruleId + "api", // resourceType + "<NAME>", // name + "<RESOURCE_ID>", // resourceId (optional) + "<DESCRIPTION>", // description (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/create-challenge-rule.md b/examples/2.4.x/server-kotlin/java/waf/create-challenge-rule.md new file mode 100644 index 000000000..8ad34cce1 --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/create-challenge-rule.md @@ -0,0 +1,35 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.createChallengeRule( + "<RULE_ID>", // ruleId + "api", // resourceType + "<NAME>", // name + "<RESOURCE_ID>", // resourceId (optional) + "<DESCRIPTION>", // description (optional) + "compute", // challengeType (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + 1L, // difficulty (optional) + 900L, // ttl (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/create-deny-rule.md b/examples/2.4.x/server-kotlin/java/waf/create-deny-rule.md new file mode 100644 index 000000000..2001ba4f1 --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/create-deny-rule.md @@ -0,0 +1,32 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.createDenyRule( + "<RULE_ID>", // ruleId + "api", // resourceType + "<NAME>", // name + "<RESOURCE_ID>", // resourceId (optional) + "<DESCRIPTION>", // description (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/create-rate-limit-rule.md b/examples/2.4.x/server-kotlin/java/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..c34bed4f4 --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/create-rate-limit-rule.md @@ -0,0 +1,37 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.createRateLimitRule( + "<RULE_ID>", // ruleId + "api", // resourceType + "<NAME>", // name + 1L, // limit + 1L, // interval + "<RESOURCE_ID>", // resourceId (optional) + "<DESCRIPTION>", // description (optional) + "ip", // key (optional) + "fixedWindow", // strategy (optional) + 1L, // maxBucketSize (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/create-redirect-rule.md b/examples/2.4.x/server-kotlin/java/waf/create-redirect-rule.md new file mode 100644 index 000000000..778f109f2 --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/create-redirect-rule.md @@ -0,0 +1,34 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.createRedirectRule( + "<RULE_ID>", // ruleId + "api", // resourceType + "<NAME>", // name + "<LOCATION>", // location + 300L, // statusCode + "<RESOURCE_ID>", // resourceId (optional) + "<DESCRIPTION>", // description (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/delete-rule.md b/examples/2.4.x/server-kotlin/java/waf/delete-rule.md new file mode 100644 index 000000000..30a8ba7cf --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/delete-rule.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.deleteRule( + "<RULE_ID>", // ruleId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/get-rule.md b/examples/2.4.x/server-kotlin/java/waf/get-rule.md new file mode 100644 index 000000000..e4068e8fc --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/get-rule.md @@ -0,0 +1,25 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.getRule( + "<RULE_ID>", // ruleId + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/list-rules.md b/examples/2.4.x/server-kotlin/java/waf/list-rules.md new file mode 100644 index 000000000..e8da60e1c --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/list-rules.md @@ -0,0 +1,27 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.listRules( + List.of(), // queries (optional) + "<SEARCH>", // search (optional) + false, // total (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/update-bypass-rule.md b/examples/2.4.x/server-kotlin/java/waf/update-bypass-rule.md new file mode 100644 index 000000000..99a004fc8 --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/update-bypass-rule.md @@ -0,0 +1,32 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.updateBypassRule( + "<RULE_ID>", // ruleId + "api", // resourceType (optional) + "<RESOURCE_ID>", // resourceId (optional) + "<NAME>", // name (optional) + "<DESCRIPTION>", // description (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/update-challenge-rule.md b/examples/2.4.x/server-kotlin/java/waf/update-challenge-rule.md new file mode 100644 index 000000000..b7369746b --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/update-challenge-rule.md @@ -0,0 +1,35 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.updateChallengeRule( + "<RULE_ID>", // ruleId + "api", // resourceType (optional) + "<RESOURCE_ID>", // resourceId (optional) + "<NAME>", // name (optional) + "<DESCRIPTION>", // description (optional) + "compute", // challengeType (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + 1L, // difficulty (optional) + 900L, // ttl (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/update-deny-rule.md b/examples/2.4.x/server-kotlin/java/waf/update-deny-rule.md new file mode 100644 index 000000000..c689c7a7f --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/update-deny-rule.md @@ -0,0 +1,32 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.updateDenyRule( + "<RULE_ID>", // ruleId + "api", // resourceType (optional) + "<RESOURCE_ID>", // resourceId (optional) + "<NAME>", // name (optional) + "<DESCRIPTION>", // description (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/update-rate-limit-rule.md b/examples/2.4.x/server-kotlin/java/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..bc368b126 --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/update-rate-limit-rule.md @@ -0,0 +1,36 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.updateRateLimitRule( + "<RULE_ID>", // ruleId + "api", // resourceType (optional) + "<RESOURCE_ID>", // resourceId (optional) + "<NAME>", // name (optional) + "<DESCRIPTION>", // description (optional) + 1L, // limit (optional) + 1L, // interval (optional) + "ip", // key (optional) + 1L, // maxBucketSize (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/java/waf/update-redirect-rule.md b/examples/2.4.x/server-kotlin/java/waf/update-redirect-rule.md new file mode 100644 index 000000000..839d2c18a --- /dev/null +++ b/examples/2.4.x/server-kotlin/java/waf/update-redirect-rule.md @@ -0,0 +1,34 @@ +```java +import io.appwrite.Client; +import io.appwrite.coroutines.CoroutineCallback; +import io.appwrite.services.Waf; + +Client client = new Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>"); // Your secret API key + +Waf waf = new Waf(client); + +waf.updateRedirectRule( + "<RULE_ID>", // ruleId + "api", // resourceType (optional) + "<RESOURCE_ID>", // resourceId (optional) + "<NAME>", // name (optional) + "<DESCRIPTION>", // description (optional) + "<LOCATION>", // location (optional) + 300L, // statusCode (optional) + -100000L, // priority (optional) + false, // enabled (optional) + List.of(), // conditions (optional) + new CoroutineCallback<>((result, error) -> { + if (error != null) { + error.printStackTrace(); + return; + } + + System.out.println(result); + }) +); + +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/oauth2/authorize-post.md b/examples/2.4.x/server-kotlin/kotlin/oauth2/authorize-post.md index 9e24f0542..2bd3771c0 100644 --- a/examples/2.4.x/server-kotlin/kotlin/oauth2/authorize-post.md +++ b/examples/2.4.x/server-kotlin/kotlin/oauth2/authorize-post.md @@ -22,7 +22,7 @@ val response = oauth2.authorizePost( prompt = "<PROMPT>", // optional maxAge = 0, // optional authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional - resource = "", // optional + resource = listOf(), // optional audience = "<AUDIENCE>", // optional requestUri = "<REQUEST_URI>" // optional ) diff --git a/examples/2.4.x/server-kotlin/kotlin/oauth2/authorize.md b/examples/2.4.x/server-kotlin/kotlin/oauth2/authorize.md index 206524295..c7d302fcb 100644 --- a/examples/2.4.x/server-kotlin/kotlin/oauth2/authorize.md +++ b/examples/2.4.x/server-kotlin/kotlin/oauth2/authorize.md @@ -22,7 +22,7 @@ val response = oauth2.authorize( prompt = "<PROMPT>", // optional maxAge = 0, // optional authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional - resource = "", // optional + resource = listOf(), // optional audience = "<AUDIENCE>", // optional requestUri = "<REQUEST_URI>" // optional ) diff --git a/examples/2.4.x/server-kotlin/kotlin/oauth2/create-device-authorization.md b/examples/2.4.x/server-kotlin/kotlin/oauth2/create-device-authorization.md index e2506689a..d6c5f1fb1 100644 --- a/examples/2.4.x/server-kotlin/kotlin/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-kotlin/kotlin/oauth2/create-device-authorization.md @@ -14,7 +14,7 @@ val response = oauth2.createDeviceAuthorization( clientId = "<CLIENT_ID>", // optional scope = "<SCOPE>", // optional authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional - resource = "", // optional + resource = listOf(), // optional audience = "<AUDIENCE>" // optional ) ``` diff --git a/examples/2.4.x/server-kotlin/kotlin/oauth2/create-par.md b/examples/2.4.x/server-kotlin/kotlin/oauth2/create-par.md index 66496f375..1535a715a 100644 --- a/examples/2.4.x/server-kotlin/kotlin/oauth2/create-par.md +++ b/examples/2.4.x/server-kotlin/kotlin/oauth2/create-par.md @@ -22,7 +22,7 @@ val response = oauth2.createPAR( prompt = "<PROMPT>", // optional maxAge = 0, // optional authorizationDetails = "<AUTHORIZATION_DETAILS>", // optional - resource = "", // optional + resource = listOf(), // optional audience = "<AUDIENCE>" // optional ) ``` diff --git a/examples/2.4.x/server-kotlin/kotlin/oauth2/create-token.md b/examples/2.4.x/server-kotlin/kotlin/oauth2/create-token.md index 8bb955cc6..a164b180d 100644 --- a/examples/2.4.x/server-kotlin/kotlin/oauth2/create-token.md +++ b/examples/2.4.x/server-kotlin/kotlin/oauth2/create-token.md @@ -19,7 +19,7 @@ val response = oauth2.createToken( clientSecret = "<CLIENT_SECRET>", // optional codeVerifier = "<CODE_VERIFIER>", // optional redirectUri = "https://example.com", // optional - resource = "", // optional + resource = listOf(), // optional audience = "<AUDIENCE>" // optional ) ``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/create-bypass-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/create-bypass-rule.md new file mode 100644 index 000000000..56b9d7d24 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/create-bypass-rule.md @@ -0,0 +1,23 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.createBypassRule( + ruleId = "<RULE_ID>", + resourceType = "api", + name = "<NAME>", + resourceId = "<RESOURCE_ID>", // optional + description = "<DESCRIPTION>", // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf() // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/create-challenge-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/create-challenge-rule.md new file mode 100644 index 000000000..2764f1d83 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/create-challenge-rule.md @@ -0,0 +1,26 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.createChallengeRule( + ruleId = "<RULE_ID>", + resourceType = "api", + name = "<NAME>", + resourceId = "<RESOURCE_ID>", // optional + description = "<DESCRIPTION>", // optional + challengeType = "compute", // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf(), // optional + difficulty = 1, // optional + ttl = 900 // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/create-deny-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/create-deny-rule.md new file mode 100644 index 000000000..22d671c77 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/create-deny-rule.md @@ -0,0 +1,23 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.createDenyRule( + ruleId = "<RULE_ID>", + resourceType = "api", + name = "<NAME>", + resourceId = "<RESOURCE_ID>", // optional + description = "<DESCRIPTION>", // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf() // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/create-rate-limit-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..d8b58a294 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/create-rate-limit-rule.md @@ -0,0 +1,28 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.createRateLimitRule( + ruleId = "<RULE_ID>", + resourceType = "api", + name = "<NAME>", + limit = 1, + interval = 1, + resourceId = "<RESOURCE_ID>", // optional + description = "<DESCRIPTION>", // optional + key = "ip", // optional + strategy = "fixedWindow", // optional + maxBucketSize = 1, // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf() // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/create-redirect-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/create-redirect-rule.md new file mode 100644 index 000000000..217d5b59e --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/create-redirect-rule.md @@ -0,0 +1,25 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.createRedirectRule( + ruleId = "<RULE_ID>", + resourceType = "api", + name = "<NAME>", + location = "<LOCATION>", + statusCode = 300, + resourceId = "<RESOURCE_ID>", // optional + description = "<DESCRIPTION>", // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf() // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/delete-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/delete-rule.md new file mode 100644 index 000000000..3326e068e --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/delete-rule.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.deleteRule( + ruleId = "<RULE_ID>" +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/get-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/get-rule.md new file mode 100644 index 000000000..1b912e220 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/get-rule.md @@ -0,0 +1,16 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.getRule( + ruleId = "<RULE_ID>" +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/list-rules.md b/examples/2.4.x/server-kotlin/kotlin/waf/list-rules.md new file mode 100644 index 000000000..cfaa1e9db --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/list-rules.md @@ -0,0 +1,18 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.listRules( + queries = listOf(), // optional + search = "<SEARCH>", // optional + total = false // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/update-bypass-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/update-bypass-rule.md new file mode 100644 index 000000000..a7de41793 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/update-bypass-rule.md @@ -0,0 +1,23 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.updateBypassRule( + ruleId = "<RULE_ID>", + resourceType = "api", // optional + resourceId = "<RESOURCE_ID>", // optional + name = "<NAME>", // optional + description = "<DESCRIPTION>", // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf() // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/update-challenge-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/update-challenge-rule.md new file mode 100644 index 000000000..6f207d1f9 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/update-challenge-rule.md @@ -0,0 +1,26 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.updateChallengeRule( + ruleId = "<RULE_ID>", + resourceType = "api", // optional + resourceId = "<RESOURCE_ID>", // optional + name = "<NAME>", // optional + description = "<DESCRIPTION>", // optional + challengeType = "compute", // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf(), // optional + difficulty = 1, // optional + ttl = 900 // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/update-deny-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/update-deny-rule.md new file mode 100644 index 000000000..ce7d19258 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/update-deny-rule.md @@ -0,0 +1,23 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.updateDenyRule( + ruleId = "<RULE_ID>", + resourceType = "api", // optional + resourceId = "<RESOURCE_ID>", // optional + name = "<NAME>", // optional + description = "<DESCRIPTION>", // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf() // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/update-rate-limit-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..9218bfdc0 --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/update-rate-limit-rule.md @@ -0,0 +1,27 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.updateRateLimitRule( + ruleId = "<RULE_ID>", + resourceType = "api", // optional + resourceId = "<RESOURCE_ID>", // optional + name = "<NAME>", // optional + description = "<DESCRIPTION>", // optional + limit = 1, // optional + interval = 1, // optional + key = "ip", // optional + maxBucketSize = 1, // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf() // optional +) +``` diff --git a/examples/2.4.x/server-kotlin/kotlin/waf/update-redirect-rule.md b/examples/2.4.x/server-kotlin/kotlin/waf/update-redirect-rule.md new file mode 100644 index 000000000..7291cd57e --- /dev/null +++ b/examples/2.4.x/server-kotlin/kotlin/waf/update-redirect-rule.md @@ -0,0 +1,25 @@ +```kotlin +import io.appwrite.Client +import io.appwrite.coroutines.CoroutineCallback +import io.appwrite.services.Waf + +val client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +val waf = Waf(client) + +val response = waf.updateRedirectRule( + ruleId = "<RULE_ID>", + resourceType = "api", // optional + resourceId = "<RESOURCE_ID>", // optional + name = "<NAME>", // optional + description = "<DESCRIPTION>", // optional + location = "<LOCATION>", // optional + statusCode = 300, // optional + priority = -100000, // optional + enabled = false, // optional + conditions = listOf() // optional +) +``` diff --git a/examples/2.4.x/server-nodejs/examples/avatars/update-photo.md b/examples/2.4.x/server-nodejs/examples/avatars/update-photo.md index 5019adf7c..4e100e190 100644 --- a/examples/2.4.x/server-nodejs/examples/avatars/update-photo.md +++ b/examples/2.4.x/server-nodejs/examples/avatars/update-photo.md @@ -1,6 +1,6 @@ ```javascript const sdk = require('node-appwrite'); -const fs = require('fs'); +const { InputFile } = require('node-appwrite/file'); const client = new sdk.Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/examples/2.4.x/server-nodejs/examples/functions/create-deployment.md b/examples/2.4.x/server-nodejs/examples/functions/create-deployment.md index 0a4baff1f..d042d712c 100644 --- a/examples/2.4.x/server-nodejs/examples/functions/create-deployment.md +++ b/examples/2.4.x/server-nodejs/examples/functions/create-deployment.md @@ -1,6 +1,6 @@ ```javascript const sdk = require('node-appwrite'); -const fs = require('fs'); +const { InputFile } = require('node-appwrite/file'); const client = new sdk.Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/examples/2.4.x/server-nodejs/examples/oauth2/authorize-post.md b/examples/2.4.x/server-nodejs/examples/oauth2/authorize-post.md index 003c71792..32320e9d2 100644 --- a/examples/2.4.x/server-nodejs/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-nodejs/examples/oauth2/authorize-post.md @@ -20,7 +20,7 @@ const result = await oauth2.authorizePost({ prompt: '<PROMPT>', // optional maxAge: 0, // optional authorizationDetails: '<AUTHORIZATION_DETAILS>', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>', // optional requestUri: '<REQUEST_URI>', // optional }); diff --git a/examples/2.4.x/server-nodejs/examples/oauth2/authorize.md b/examples/2.4.x/server-nodejs/examples/oauth2/authorize.md index fe529c62b..384e3bf30 100644 --- a/examples/2.4.x/server-nodejs/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-nodejs/examples/oauth2/authorize.md @@ -20,7 +20,7 @@ const result = await oauth2.authorize({ prompt: '<PROMPT>', // optional maxAge: 0, // optional authorizationDetails: '<AUTHORIZATION_DETAILS>', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>', // optional requestUri: '<REQUEST_URI>', // optional }); diff --git a/examples/2.4.x/server-nodejs/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-nodejs/examples/oauth2/create-device-authorization.md index e49bef1d3..42150691a 100644 --- a/examples/2.4.x/server-nodejs/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-nodejs/examples/oauth2/create-device-authorization.md @@ -12,7 +12,7 @@ const result = await oauth2.createDeviceAuthorization({ clientId: '<CLIENT_ID>', // optional scope: '<SCOPE>', // optional authorizationDetails: '<AUTHORIZATION_DETAILS>', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>', // optional }); ``` diff --git a/examples/2.4.x/server-nodejs/examples/oauth2/create-par.md b/examples/2.4.x/server-nodejs/examples/oauth2/create-par.md index b579484e3..575b70ee2 100644 --- a/examples/2.4.x/server-nodejs/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-nodejs/examples/oauth2/create-par.md @@ -20,7 +20,7 @@ const result = await oauth2.createPAR({ prompt: '<PROMPT>', // optional maxAge: 0, // optional authorizationDetails: '<AUTHORIZATION_DETAILS>', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>', // optional }); ``` diff --git a/examples/2.4.x/server-nodejs/examples/oauth2/create-token.md b/examples/2.4.x/server-nodejs/examples/oauth2/create-token.md index ea081d155..cb9ca6560 100644 --- a/examples/2.4.x/server-nodejs/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-nodejs/examples/oauth2/create-token.md @@ -17,7 +17,7 @@ const result = await oauth2.createToken({ clientSecret: '<CLIENT_SECRET>', // optional codeVerifier: '<CODE_VERIFIER>', // optional redirectUri: 'https://example.com', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>', // optional }); ``` diff --git a/examples/2.4.x/server-nodejs/examples/sites/create-deployment.md b/examples/2.4.x/server-nodejs/examples/sites/create-deployment.md index a07dedee6..d6cee98a2 100644 --- a/examples/2.4.x/server-nodejs/examples/sites/create-deployment.md +++ b/examples/2.4.x/server-nodejs/examples/sites/create-deployment.md @@ -1,6 +1,6 @@ ```javascript const sdk = require('node-appwrite'); -const fs = require('fs'); +const { InputFile } = require('node-appwrite/file'); const client = new sdk.Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/examples/2.4.x/server-nodejs/examples/storage/create-file.md b/examples/2.4.x/server-nodejs/examples/storage/create-file.md index d69727e16..429b6bb03 100644 --- a/examples/2.4.x/server-nodejs/examples/storage/create-file.md +++ b/examples/2.4.x/server-nodejs/examples/storage/create-file.md @@ -1,6 +1,6 @@ ```javascript const sdk = require('node-appwrite'); -const fs = require('fs'); +const { InputFile } = require('node-appwrite/file'); const client = new sdk.Client() .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint diff --git a/examples/2.4.x/server-nodejs/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-nodejs/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..36ac23690 --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/create-bypass-rule.md @@ -0,0 +1,21 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.createBypassRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-nodejs/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..8a52e5540 --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/create-challenge-rule.md @@ -0,0 +1,24 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.createChallengeRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + challengeType: 'compute', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional + difficulty: 1, // optional + ttl: 900, // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/create-deny-rule.md b/examples/2.4.x/server-nodejs/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..2fd6fdc3d --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/create-deny-rule.md @@ -0,0 +1,21 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.createDenyRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-nodejs/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..d40cd0bee --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,26 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.createRateLimitRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + limit: 1, + interval: 1, + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + key: 'ip', // optional + strategy: 'fixedWindow', // optional + maxBucketSize: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-nodejs/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..d606bc942 --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/create-redirect-rule.md @@ -0,0 +1,23 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.createRedirectRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + location: '<LOCATION>', + statusCode: 300, + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/delete-rule.md b/examples/2.4.x/server-nodejs/examples/waf/delete-rule.md new file mode 100644 index 000000000..3b080632a --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/delete-rule.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.deleteRule({ + ruleId: '<RULE_ID>', +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/get-rule.md b/examples/2.4.x/server-nodejs/examples/waf/get-rule.md new file mode 100644 index 000000000..5d4bbe145 --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/get-rule.md @@ -0,0 +1,14 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.getRule({ + ruleId: '<RULE_ID>', +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/list-rules.md b/examples/2.4.x/server-nodejs/examples/waf/list-rules.md new file mode 100644 index 000000000..eef8e1741 --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/list-rules.md @@ -0,0 +1,16 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.listRules({ + queries: [], // optional + search: '<SEARCH>', // optional + total: false, // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-nodejs/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..9fa71c1b3 --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/update-bypass-rule.md @@ -0,0 +1,21 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.updateBypassRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-nodejs/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..a5f85ba0e --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/update-challenge-rule.md @@ -0,0 +1,24 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.updateChallengeRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + challengeType: 'compute', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional + difficulty: 1, // optional + ttl: 900, // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/update-deny-rule.md b/examples/2.4.x/server-nodejs/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..2764b4c9b --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/update-deny-rule.md @@ -0,0 +1,21 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.updateDenyRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-nodejs/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..f7810bdf7 --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,25 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.updateRateLimitRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + limit: 1, // optional + interval: 1, // optional + key: 'ip', // optional + maxBucketSize: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional +}); +``` diff --git a/examples/2.4.x/server-nodejs/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-nodejs/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..7355421a7 --- /dev/null +++ b/examples/2.4.x/server-nodejs/examples/waf/update-redirect-rule.md @@ -0,0 +1,23 @@ +```javascript +const sdk = require('node-appwrite'); + +const client = new sdk.Client() + .setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + .setProject('<YOUR_PROJECT_ID>') // Your project ID + .setKey('<YOUR_API_KEY>'); // Your secret API key + +const waf = new sdk.Waf(client); + +const result = await waf.updateRedirectRule({ + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + location: '<LOCATION>', // optional + statusCode: 300, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional +}); +``` diff --git a/examples/2.4.x/server-php/examples/oauth2/authorize-post.md b/examples/2.4.x/server-php/examples/oauth2/authorize-post.md index 4048c0ec5..a99f3604c 100644 --- a/examples/2.4.x/server-php/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-php/examples/oauth2/authorize-post.md @@ -23,7 +23,7 @@ $result = $oauth2->authorizePost( prompt: '<PROMPT>', // optional maxAge: 0, // optional authorizationDetails: '<AUTHORIZATION_DETAILS>', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>', // optional requestUri: '<REQUEST_URI>' // optional ); diff --git a/examples/2.4.x/server-php/examples/oauth2/authorize.md b/examples/2.4.x/server-php/examples/oauth2/authorize.md index 2486f9de5..3765b5a3a 100644 --- a/examples/2.4.x/server-php/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-php/examples/oauth2/authorize.md @@ -23,7 +23,7 @@ $result = $oauth2->authorize( prompt: '<PROMPT>', // optional maxAge: 0, // optional authorizationDetails: '<AUTHORIZATION_DETAILS>', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>', // optional requestUri: '<REQUEST_URI>' // optional ); diff --git a/examples/2.4.x/server-php/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-php/examples/oauth2/create-device-authorization.md index 58fbb8dda..6385a1a15 100644 --- a/examples/2.4.x/server-php/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-php/examples/oauth2/create-device-authorization.md @@ -15,7 +15,7 @@ $result = $oauth2->createDeviceAuthorization( clientId: '<CLIENT_ID>', // optional scope: '<SCOPE>', // optional authorizationDetails: '<AUTHORIZATION_DETAILS>', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>' // optional ); ``` diff --git a/examples/2.4.x/server-php/examples/oauth2/create-par.md b/examples/2.4.x/server-php/examples/oauth2/create-par.md index 63d8b3f72..9c57b1dfb 100644 --- a/examples/2.4.x/server-php/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-php/examples/oauth2/create-par.md @@ -23,7 +23,7 @@ $result = $oauth2->createPAR( prompt: '<PROMPT>', // optional maxAge: 0, // optional authorizationDetails: '<AUTHORIZATION_DETAILS>', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>' // optional ); ``` diff --git a/examples/2.4.x/server-php/examples/oauth2/create-token.md b/examples/2.4.x/server-php/examples/oauth2/create-token.md index 26825bdb8..8ec9d22fb 100644 --- a/examples/2.4.x/server-php/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-php/examples/oauth2/create-token.md @@ -20,7 +20,7 @@ $result = $oauth2->createToken( clientSecret: '<CLIENT_SECRET>', // optional codeVerifier: '<CODE_VERIFIER>', // optional redirectUri: 'https://example.com', // optional - resource: '', // optional + resource: [], // optional audience: '<AUDIENCE>' // optional ); ``` diff --git a/examples/2.4.x/server-php/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-php/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..664e7db67 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/create-bypass-rule.md @@ -0,0 +1,24 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->createBypassRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-php/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..fc21ab117 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/create-challenge-rule.md @@ -0,0 +1,27 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->createChallengeRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + challengeType: 'compute', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional + difficulty: 1, // optional + ttl: 900 // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/create-deny-rule.md b/examples/2.4.x/server-php/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..e29761e82 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/create-deny-rule.md @@ -0,0 +1,24 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->createDenyRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-php/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..955a57f59 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,29 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->createRateLimitRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + limit: 1, + interval: 1, + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + key: 'ip', // optional + strategy: 'fixedWindow', // optional + maxBucketSize: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-php/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..c6b4642ad --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/create-redirect-rule.md @@ -0,0 +1,26 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->createRedirectRule( + ruleId: '<RULE_ID>', + resourceType: 'api', + name: '<NAME>', + location: '<LOCATION>', + statusCode: 300, + resourceId: '<RESOURCE_ID>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/delete-rule.md b/examples/2.4.x/server-php/examples/waf/delete-rule.md new file mode 100644 index 000000000..9e813d90a --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/delete-rule.md @@ -0,0 +1,17 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->deleteRule( + ruleId: '<RULE_ID>' +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/get-rule.md b/examples/2.4.x/server-php/examples/waf/get-rule.md new file mode 100644 index 000000000..09456dfa8 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/get-rule.md @@ -0,0 +1,17 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->getRule( + ruleId: '<RULE_ID>' +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/list-rules.md b/examples/2.4.x/server-php/examples/waf/list-rules.md new file mode 100644 index 000000000..8e3d99cf9 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/list-rules.md @@ -0,0 +1,19 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->listRules( + queries: [], // optional + search: '<SEARCH>', // optional + total: false // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-php/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..94d380539 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/update-bypass-rule.md @@ -0,0 +1,24 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->updateBypassRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-php/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..67175304d --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/update-challenge-rule.md @@ -0,0 +1,27 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->updateChallengeRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + challengeType: 'compute', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional + difficulty: 1, // optional + ttl: 900 // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/update-deny-rule.md b/examples/2.4.x/server-php/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..7e790f698 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/update-deny-rule.md @@ -0,0 +1,24 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->updateDenyRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-php/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..cf6d917cb --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,28 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->updateRateLimitRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + limit: 1, // optional + interval: 1, // optional + key: 'ip', // optional + maxBucketSize: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +); +``` diff --git a/examples/2.4.x/server-php/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-php/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..d77880683 --- /dev/null +++ b/examples/2.4.x/server-php/examples/waf/update-redirect-rule.md @@ -0,0 +1,26 @@ +```php +<?php + +use Appwrite\Client; +use Appwrite\Services\Waf; + +$client = (new Client()) + ->setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint + ->setProject('<YOUR_PROJECT_ID>') // Your project ID + ->setKey('<YOUR_API_KEY>'); // Your secret API key + +$waf = new Waf($client); + +$result = $waf->updateRedirectRule( + ruleId: '<RULE_ID>', + resourceType: 'api', // optional + resourceId: '<RESOURCE_ID>', // optional + name: '<NAME>', // optional + description: '<DESCRIPTION>', // optional + location: '<LOCATION>', // optional + statusCode: 300, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +); +``` diff --git a/examples/2.4.x/server-python/examples/oauth2/authorize-post.md b/examples/2.4.x/server-python/examples/oauth2/authorize-post.md index 778b2e72b..8cf274b7d 100644 --- a/examples/2.4.x/server-python/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-python/examples/oauth2/authorize-post.md @@ -22,7 +22,7 @@ result: Oauth2Authorize = oauth2.authorize_post( prompt = '<PROMPT>', # optional max_age = 0, # optional authorization_details = '<AUTHORIZATION_DETAILS>', # optional - resource = '', # optional + resource = [], # optional audience = '<AUDIENCE>', # optional request_uri = '<REQUEST_URI>' # optional ) diff --git a/examples/2.4.x/server-python/examples/oauth2/authorize.md b/examples/2.4.x/server-python/examples/oauth2/authorize.md index f24a14650..32fbf4b22 100644 --- a/examples/2.4.x/server-python/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-python/examples/oauth2/authorize.md @@ -22,7 +22,7 @@ result: Oauth2Authorize = oauth2.authorize( prompt = '<PROMPT>', # optional max_age = 0, # optional authorization_details = '<AUTHORIZATION_DETAILS>', # optional - resource = '', # optional + resource = [], # optional audience = '<AUDIENCE>', # optional request_uri = '<REQUEST_URI>' # optional ) diff --git a/examples/2.4.x/server-python/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-python/examples/oauth2/create-device-authorization.md index fcf563f57..f45ce70c8 100644 --- a/examples/2.4.x/server-python/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-python/examples/oauth2/create-device-authorization.md @@ -14,7 +14,7 @@ result: Oauth2DeviceAuthorization = oauth2.create_device_authorization( client_id = '<CLIENT_ID>', # optional scope = '<SCOPE>', # optional authorization_details = '<AUTHORIZATION_DETAILS>', # optional - resource = '', # optional + resource = [], # optional audience = '<AUDIENCE>' # optional ) diff --git a/examples/2.4.x/server-python/examples/oauth2/create-par.md b/examples/2.4.x/server-python/examples/oauth2/create-par.md index 35bcbf900..32b72a9d1 100644 --- a/examples/2.4.x/server-python/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-python/examples/oauth2/create-par.md @@ -22,7 +22,7 @@ result: Oauth2PAR = oauth2.create_par( prompt = '<PROMPT>', # optional max_age = 0, # optional authorization_details = '<AUTHORIZATION_DETAILS>', # optional - resource = '', # optional + resource = [], # optional audience = '<AUDIENCE>' # optional ) diff --git a/examples/2.4.x/server-python/examples/oauth2/create-token.md b/examples/2.4.x/server-python/examples/oauth2/create-token.md index f2f3ce7c0..6dd3006b2 100644 --- a/examples/2.4.x/server-python/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-python/examples/oauth2/create-token.md @@ -19,7 +19,7 @@ result: Oauth2Token = oauth2.create_token( client_secret = '<CLIENT_SECRET>', # optional code_verifier = '<CODE_VERIFIER>', # optional redirect_uri = 'https://example.com', # optional - resource = '', # optional + resource = [], # optional audience = '<AUDIENCE>' # optional ) diff --git a/examples/2.4.x/server-python/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-python/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..70ed9061f --- /dev/null +++ b/examples/2.4.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://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleBypass = waf.create_bypass_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', + name = '<NAME>', + resource_id = '<RESOURCE_ID>', # optional + description = '<DESCRIPTION>', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-python/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..e3d2fea2a --- /dev/null +++ b/examples/2.4.x/server-python/examples/waf/create-challenge-rule.md @@ -0,0 +1,28 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleChallenge + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleChallenge = waf.create_challenge_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', + name = '<NAME>', + resource_id = '<RESOURCE_ID>', # optional + description = '<DESCRIPTION>', # optional + challenge_type = 'compute', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [], # optional + difficulty = 1, # optional + ttl = 900 # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/create-deny-rule.md b/examples/2.4.x/server-python/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..a23ae249d --- /dev/null +++ b/examples/2.4.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://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleDeny = waf.create_deny_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', + name = '<NAME>', + resource_id = '<RESOURCE_ID>', # optional + description = '<DESCRIPTION>', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-python/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..e76605f8f --- /dev/null +++ b/examples/2.4.x/server-python/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,30 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleRateLimit + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleRateLimit = waf.create_rate_limit_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', + name = '<NAME>', + limit = 1, + interval = 1, + resource_id = '<RESOURCE_ID>', # optional + description = '<DESCRIPTION>', # optional + key = 'ip', # optional + strategy = 'fixedWindow', # optional + max_bucket_size = 1, # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-python/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..a33a1e6c8 --- /dev/null +++ b/examples/2.4.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://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleRedirect = waf.create_redirect_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', + name = '<NAME>', + location = '<LOCATION>', + status_code = 300, + resource_id = '<RESOURCE_ID>', # optional + description = '<DESCRIPTION>', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/delete-rule.md b/examples/2.4.x/server-python/examples/waf/delete-rule.md new file mode 100644 index 000000000..a2fbe6d86 --- /dev/null +++ b/examples/2.4.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://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result = waf.delete_rule( + rule_id = '<RULE_ID>' +) +``` diff --git a/examples/2.4.x/server-python/examples/waf/get-rule.md b/examples/2.4.x/server-python/examples/waf/get-rule.md new file mode 100644 index 000000000..3168d309f --- /dev/null +++ b/examples/2.4.x/server-python/examples/waf/get-rule.md @@ -0,0 +1,23 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleBypass +from appwrite.models import WafRuleDeny +from appwrite.models import WafRuleChallenge +from appwrite.models import WafRuleRateLimit +from appwrite.models import WafRuleRedirect +from typing import Union + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: Union[WafRuleBypass, WafRuleDeny, WafRuleChallenge, WafRuleRateLimit, WafRuleRedirect] = waf.get_rule( + rule_id = '<RULE_ID>' +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/list-rules.md b/examples/2.4.x/server-python/examples/waf/list-rules.md new file mode 100644 index 000000000..d06a509e3 --- /dev/null +++ b/examples/2.4.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://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleList = waf.list_rules( + queries = [], # optional + search = '<SEARCH>', # optional + total = False # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-python/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..39ceb7f4a --- /dev/null +++ b/examples/2.4.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://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleBypass = waf.update_bypass_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', # optional + resource_id = '<RESOURCE_ID>', # optional + name = '<NAME>', # optional + description = '<DESCRIPTION>', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-python/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..30afcd7fe --- /dev/null +++ b/examples/2.4.x/server-python/examples/waf/update-challenge-rule.md @@ -0,0 +1,28 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleChallenge + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleChallenge = waf.update_challenge_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', # optional + resource_id = '<RESOURCE_ID>', # optional + name = '<NAME>', # optional + description = '<DESCRIPTION>', # optional + challenge_type = 'compute', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [], # optional + difficulty = 1, # optional + ttl = 900 # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/update-deny-rule.md b/examples/2.4.x/server-python/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..2253e2b7d --- /dev/null +++ b/examples/2.4.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://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleDeny = waf.update_deny_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', # optional + resource_id = '<RESOURCE_ID>', # optional + name = '<NAME>', # optional + description = '<DESCRIPTION>', # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-python/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..e413cef83 --- /dev/null +++ b/examples/2.4.x/server-python/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,29 @@ +```python +from appwrite.client import Client +from appwrite.services.waf import Waf +from appwrite.models import WafRuleRateLimit + +client = Client() +client.set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleRateLimit = waf.update_rate_limit_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', # optional + resource_id = '<RESOURCE_ID>', # optional + name = '<NAME>', # optional + description = '<DESCRIPTION>', # optional + limit = 1, # optional + interval = 1, # optional + key = 'ip', # optional + max_bucket_size = 1, # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-python/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-python/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..7e294f8c5 --- /dev/null +++ b/examples/2.4.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://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint +client.set_project('<YOUR_PROJECT_ID>') # Your project ID +client.set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf(client) + +result: WafRuleRedirect = waf.update_redirect_rule( + rule_id = '<RULE_ID>', + resource_type = 'api', # optional + resource_id = '<RESOURCE_ID>', # optional + name = '<NAME>', # optional + description = '<DESCRIPTION>', # optional + location = '<LOCATION>', # optional + status_code = 300, # optional + priority = -100000, # optional + enabled = False, # optional + conditions = [] # optional +) + +print(result.model_dump()) +``` diff --git a/examples/2.4.x/server-rest/examples/oauth2/authorize-post.md b/examples/2.4.x/server-rest/examples/oauth2/authorize-post.md index 8a81c3fd4..8ad40fae7 100644 --- a/examples/2.4.x/server-rest/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-rest/examples/oauth2/authorize-post.md @@ -17,7 +17,7 @@ X-Appwrite-Response-Format: 2.4.0 "prompt": "<PROMPT>", "max_age": 0, "authorization_details": "<AUTHORIZATION_DETAILS>", - "resource": "", + "resource": [], "audience": "<AUDIENCE>", "request_uri": "<REQUEST_URI>" } diff --git a/examples/2.4.x/server-rest/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-rest/examples/oauth2/create-device-authorization.md index 84c2139fc..5fcc1acbf 100644 --- a/examples/2.4.x/server-rest/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-rest/examples/oauth2/create-device-authorization.md @@ -9,7 +9,7 @@ X-Appwrite-Response-Format: 2.4.0 "client_id": "<CLIENT_ID>", "scope": "<SCOPE>", "authorization_details": "<AUTHORIZATION_DETAILS>", - "resource": "", + "resource": [], "audience": "<AUDIENCE>" } ``` diff --git a/examples/2.4.x/server-rest/examples/oauth2/create-par.md b/examples/2.4.x/server-rest/examples/oauth2/create-par.md index 179f5115a..90f13e5b4 100644 --- a/examples/2.4.x/server-rest/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-rest/examples/oauth2/create-par.md @@ -17,7 +17,7 @@ X-Appwrite-Response-Format: 2.4.0 "prompt": "<PROMPT>", "max_age": 0, "authorization_details": "<AUTHORIZATION_DETAILS>", - "resource": "", + "resource": [], "audience": "<AUDIENCE>" } ``` diff --git a/examples/2.4.x/server-rest/examples/oauth2/create-token.md b/examples/2.4.x/server-rest/examples/oauth2/create-token.md index dce3a41b0..02193fbd0 100644 --- a/examples/2.4.x/server-rest/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-rest/examples/oauth2/create-token.md @@ -14,7 +14,7 @@ X-Appwrite-Response-Format: 2.4.0 "client_secret": "<CLIENT_SECRET>", "code_verifier": "<CODE_VERIFIER>", "redirect_uri": "https://example.com", - "resource": "", + "resource": [], "audience": "<AUDIENCE>" } ``` diff --git a/examples/2.4.x/server-rest/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-rest/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..cb418a049 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/create-bypass-rule.md @@ -0,0 +1,19 @@ +```http +POST /v1/waf/rules/bypass HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "ruleId": "<RULE_ID>", + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "priority": -100000, + "enabled": false, + "conditions": [] +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-rest/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..6d2bf150a --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/create-challenge-rule.md @@ -0,0 +1,22 @@ +```http +POST /v1/waf/rules/challenge HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "ruleId": "<RULE_ID>", + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "challengeType": "compute", + "priority": -100000, + "enabled": false, + "conditions": [], + "difficulty": 1, + "ttl": 900 +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/create-deny-rule.md b/examples/2.4.x/server-rest/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..a49ef3182 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/create-deny-rule.md @@ -0,0 +1,19 @@ +```http +POST /v1/waf/rules/deny HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "ruleId": "<RULE_ID>", + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "priority": -100000, + "enabled": false, + "conditions": [] +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-rest/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..6b1d9b2d4 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,24 @@ +```http +POST /v1/waf/rules/rate-limit HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "ruleId": "<RULE_ID>", + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "limit": 1, + "interval": 1, + "key": "ip", + "strategy": "fixedWindow", + "maxBucketSize": 1, + "priority": -100000, + "enabled": false, + "conditions": [] +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-rest/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..77cb2ce69 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/create-redirect-rule.md @@ -0,0 +1,21 @@ +```http +POST /v1/waf/rules/redirect HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "ruleId": "<RULE_ID>", + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "location": "<LOCATION>", + "statusCode": 300, + "priority": -100000, + "enabled": false, + "conditions": [] +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/delete-rule.md b/examples/2.4.x/server-rest/examples/waf/delete-rule.md new file mode 100644 index 000000000..53c77da6c --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/delete-rule.md @@ -0,0 +1,9 @@ +```http +DELETE /v1/waf/rules/{ruleId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +``` diff --git a/examples/2.4.x/server-rest/examples/waf/get-rule.md b/examples/2.4.x/server-rest/examples/waf/get-rule.md new file mode 100644 index 000000000..f41e77586 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/get-rule.md @@ -0,0 +1,7 @@ +```http +GET /v1/waf/rules/{ruleId} HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> +``` diff --git a/examples/2.4.x/server-rest/examples/waf/list-rules.md b/examples/2.4.x/server-rest/examples/waf/list-rules.md new file mode 100644 index 000000000..d1d051edc --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/list-rules.md @@ -0,0 +1,7 @@ +```http +GET /v1/waf/rules HTTP/1.1 +Host: cloud.appwrite.io +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> +``` diff --git a/examples/2.4.x/server-rest/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-rest/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..ddbb0e26c --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/update-bypass-rule.md @@ -0,0 +1,18 @@ +```http +PATCH /v1/waf/rules/bypass/{ruleId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "priority": -100000, + "enabled": false, + "conditions": [] +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-rest/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..c33a88952 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/update-challenge-rule.md @@ -0,0 +1,21 @@ +```http +PATCH /v1/waf/rules/challenge/{ruleId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "challengeType": "compute", + "priority": -100000, + "enabled": false, + "conditions": [], + "difficulty": 1, + "ttl": 900 +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/update-deny-rule.md b/examples/2.4.x/server-rest/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..8971f6108 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/update-deny-rule.md @@ -0,0 +1,18 @@ +```http +PATCH /v1/waf/rules/deny/{ruleId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "priority": -100000, + "enabled": false, + "conditions": [] +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-rest/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..d430a8940 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,22 @@ +```http +PATCH /v1/waf/rules/rate-limit/{ruleId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "limit": 1, + "interval": 1, + "key": "ip", + "maxBucketSize": 1, + "priority": -100000, + "enabled": false, + "conditions": [] +} +``` diff --git a/examples/2.4.x/server-rest/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-rest/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..9a84a26a2 --- /dev/null +++ b/examples/2.4.x/server-rest/examples/waf/update-redirect-rule.md @@ -0,0 +1,20 @@ +```http +PATCH /v1/waf/rules/redirect/{ruleId} HTTP/1.1 +Host: cloud.appwrite.io +Content-Type: application/json +Accept: application/json +X-Appwrite-Response-Format: 2.4.0 +X-Appwrite-Project: <YOUR_PROJECT_ID> + +{ + "resourceType": "api", + "resourceId": "<RESOURCE_ID>", + "name": "<NAME>", + "description": "<DESCRIPTION>", + "location": "<LOCATION>", + "statusCode": 300, + "priority": -100000, + "enabled": false, + "conditions": [] +} +``` diff --git a/examples/2.4.x/server-ruby/examples/oauth2/authorize-post.md b/examples/2.4.x/server-ruby/examples/oauth2/authorize-post.md index dddc503a2..d4f058cec 100644 --- a/examples/2.4.x/server-ruby/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-ruby/examples/oauth2/authorize-post.md @@ -22,7 +22,7 @@ result = oauth2.authorize_post( prompt: '<PROMPT>', # optional max_age: 0, # optional authorization_details: '<AUTHORIZATION_DETAILS>', # optional - resource: '', # optional + resource: [], # optional audience: '<AUDIENCE>', # optional request_uri: '<REQUEST_URI>' # optional ) diff --git a/examples/2.4.x/server-ruby/examples/oauth2/authorize.md b/examples/2.4.x/server-ruby/examples/oauth2/authorize.md index 9df01c2ea..474e4e962 100644 --- a/examples/2.4.x/server-ruby/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-ruby/examples/oauth2/authorize.md @@ -22,7 +22,7 @@ result = oauth2.authorize( prompt: '<PROMPT>', # optional max_age: 0, # optional authorization_details: '<AUTHORIZATION_DETAILS>', # optional - resource: '', # optional + resource: [], # optional audience: '<AUDIENCE>', # optional request_uri: '<REQUEST_URI>' # optional ) diff --git a/examples/2.4.x/server-ruby/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-ruby/examples/oauth2/create-device-authorization.md index 1fd99578c..3fde848de 100644 --- a/examples/2.4.x/server-ruby/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-ruby/examples/oauth2/create-device-authorization.md @@ -14,7 +14,7 @@ result = oauth2.create_device_authorization( client_id: '<CLIENT_ID>', # optional scope: '<SCOPE>', # optional authorization_details: '<AUTHORIZATION_DETAILS>', # optional - resource: '', # optional + resource: [], # optional audience: '<AUDIENCE>' # optional ) ``` diff --git a/examples/2.4.x/server-ruby/examples/oauth2/create-par.md b/examples/2.4.x/server-ruby/examples/oauth2/create-par.md index eb94e74fc..2ac703ea0 100644 --- a/examples/2.4.x/server-ruby/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-ruby/examples/oauth2/create-par.md @@ -22,7 +22,7 @@ result = oauth2.create_par( prompt: '<PROMPT>', # optional max_age: 0, # optional authorization_details: '<AUTHORIZATION_DETAILS>', # optional - resource: '', # optional + resource: [], # optional audience: '<AUDIENCE>' # optional ) ``` diff --git a/examples/2.4.x/server-ruby/examples/oauth2/create-token.md b/examples/2.4.x/server-ruby/examples/oauth2/create-token.md index 931a2b906..8b0a9c524 100644 --- a/examples/2.4.x/server-ruby/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-ruby/examples/oauth2/create-token.md @@ -19,7 +19,7 @@ result = oauth2.create_token( client_secret: '<CLIENT_SECRET>', # optional code_verifier: '<CODE_VERIFIER>', # optional redirect_uri: 'https://example.com', # optional - resource: '', # optional + resource: [], # optional audience: '<AUDIENCE>' # optional ) ``` diff --git a/examples/2.4.x/server-ruby/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-ruby/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..084ce800d --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/create-bypass-rule.md @@ -0,0 +1,23 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.create_bypass_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', + name: '<NAME>', + resource_id: '<RESOURCE_ID>', # optional + description: '<DESCRIPTION>', # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [] # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-ruby/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..cc4545ec7 --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/create-challenge-rule.md @@ -0,0 +1,26 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.create_challenge_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', + name: '<NAME>', + resource_id: '<RESOURCE_ID>', # optional + description: '<DESCRIPTION>', # optional + challenge_type: 'compute', # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [], # optional + difficulty: 1, # optional + ttl: 900 # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/create-deny-rule.md b/examples/2.4.x/server-ruby/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..653f3786e --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/create-deny-rule.md @@ -0,0 +1,23 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.create_deny_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', + name: '<NAME>', + resource_id: '<RESOURCE_ID>', # optional + description: '<DESCRIPTION>', # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [] # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-ruby/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..6b188b9fd --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,28 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.create_rate_limit_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', + name: '<NAME>', + limit: 1, + interval: 1, + resource_id: '<RESOURCE_ID>', # optional + description: '<DESCRIPTION>', # optional + key: 'ip', # optional + strategy: 'fixedWindow', # optional + max_bucket_size: 1, # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [] # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-ruby/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..ffa441bba --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/create-redirect-rule.md @@ -0,0 +1,25 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.create_redirect_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', + name: '<NAME>', + location: '<LOCATION>', + status_code: 300, + resource_id: '<RESOURCE_ID>', # optional + description: '<DESCRIPTION>', # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [] # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/delete-rule.md b/examples/2.4.x/server-ruby/examples/waf/delete-rule.md new file mode 100644 index 000000000..6f1bb0358 --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/delete-rule.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.delete_rule( + rule_id: '<RULE_ID>' +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/get-rule.md b/examples/2.4.x/server-ruby/examples/waf/get-rule.md new file mode 100644 index 000000000..c6929bf82 --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/get-rule.md @@ -0,0 +1,16 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.get_rule( + rule_id: '<RULE_ID>' +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/list-rules.md b/examples/2.4.x/server-ruby/examples/waf/list-rules.md new file mode 100644 index 000000000..3c925cc9a --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/list-rules.md @@ -0,0 +1,18 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.list_rules( + queries: [], # optional + search: '<SEARCH>', # optional + total: false # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-ruby/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..8e691de2b --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/update-bypass-rule.md @@ -0,0 +1,23 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.update_bypass_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', # optional + resource_id: '<RESOURCE_ID>', # optional + name: '<NAME>', # optional + description: '<DESCRIPTION>', # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [] # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-ruby/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..19b117fe5 --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/update-challenge-rule.md @@ -0,0 +1,26 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.update_challenge_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', # optional + resource_id: '<RESOURCE_ID>', # optional + name: '<NAME>', # optional + description: '<DESCRIPTION>', # optional + challenge_type: 'compute', # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [], # optional + difficulty: 1, # optional + ttl: 900 # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/update-deny-rule.md b/examples/2.4.x/server-ruby/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..f623be16a --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/update-deny-rule.md @@ -0,0 +1,23 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.update_deny_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', # optional + resource_id: '<RESOURCE_ID>', # optional + name: '<NAME>', # optional + description: '<DESCRIPTION>', # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [] # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-ruby/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..2eb584658 --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,27 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.update_rate_limit_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', # optional + resource_id: '<RESOURCE_ID>', # optional + name: '<NAME>', # optional + description: '<DESCRIPTION>', # optional + limit: 1, # optional + interval: 1, # optional + key: 'ip', # optional + max_bucket_size: 1, # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [] # optional +) +``` diff --git a/examples/2.4.x/server-ruby/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-ruby/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..3ebfef304 --- /dev/null +++ b/examples/2.4.x/server-ruby/examples/waf/update-redirect-rule.md @@ -0,0 +1,25 @@ +```ruby +require 'appwrite' + +include Appwrite + +client = Client.new + .set_endpoint('https://<REGION>.cloud.appwrite.io/v1') # Your API Endpoint + .set_project('<YOUR_PROJECT_ID>') # Your project ID + .set_key('<YOUR_API_KEY>') # Your secret API key + +waf = Waf.new(client) + +result = waf.update_redirect_rule( + rule_id: '<RULE_ID>', + resource_type: 'api', # optional + resource_id: '<RESOURCE_ID>', # optional + name: '<NAME>', # optional + description: '<DESCRIPTION>', # optional + location: '<LOCATION>', # optional + status_code: 300, # optional + priority: -100000, # optional + enabled: false, # optional + conditions: [] # optional +) +``` diff --git a/examples/2.4.x/server-rust/examples/oauth2/authorize-post.md b/examples/2.4.x/server-rust/examples/oauth2/authorize-post.md index 35fe767ce..45ada9f31 100644 --- a/examples/2.4.x/server-rust/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-rust/examples/oauth2/authorize-post.md @@ -23,7 +23,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("<PROMPT>"), // optional Some(0), // optional Some("<AUTHORIZATION_DETAILS>"), // optional - Some(""), // optional + Some(vec![]), // optional Some("<AUDIENCE>"), // optional Some("<REQUEST_URI>") // optional ).await?; diff --git a/examples/2.4.x/server-rust/examples/oauth2/authorize.md b/examples/2.4.x/server-rust/examples/oauth2/authorize.md index b6358163b..3a93e0bc6 100644 --- a/examples/2.4.x/server-rust/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-rust/examples/oauth2/authorize.md @@ -23,7 +23,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("<PROMPT>"), // optional Some(0), // optional Some("<AUTHORIZATION_DETAILS>"), // optional - Some(""), // optional + Some(vec![]), // optional Some("<AUDIENCE>"), // optional Some("<REQUEST_URI>") // optional ).await?; diff --git a/examples/2.4.x/server-rust/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-rust/examples/oauth2/create-device-authorization.md index 9cc9da596..a026965b3 100644 --- a/examples/2.4.x/server-rust/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-rust/examples/oauth2/create-device-authorization.md @@ -15,7 +15,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("<CLIENT_ID>"), // optional Some("<SCOPE>"), // optional Some("<AUTHORIZATION_DETAILS>"), // optional - Some(""), // optional + Some(vec![]), // optional Some("<AUDIENCE>") // optional ).await?; diff --git a/examples/2.4.x/server-rust/examples/oauth2/create-par.md b/examples/2.4.x/server-rust/examples/oauth2/create-par.md index cd4998a55..f334c661d 100644 --- a/examples/2.4.x/server-rust/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-rust/examples/oauth2/create-par.md @@ -23,7 +23,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("<PROMPT>"), // optional Some(0), // optional Some("<AUTHORIZATION_DETAILS>"), // optional - Some(""), // optional + Some(vec![]), // optional Some("<AUDIENCE>") // optional ).await?; diff --git a/examples/2.4.x/server-rust/examples/oauth2/create-token.md b/examples/2.4.x/server-rust/examples/oauth2/create-token.md index 21280de40..8bc0d4114 100644 --- a/examples/2.4.x/server-rust/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-rust/examples/oauth2/create-token.md @@ -20,7 +20,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { Some("<CLIENT_SECRET>"), // optional Some("<CODE_VERIFIER>"), // optional Some("https://example.com"), // optional - Some(""), // optional + Some(vec![]), // optional Some("<AUDIENCE>") // optional ).await?; diff --git a/examples/2.4.x/server-rust/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-rust/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..5f233dc31 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/create-bypass-rule.md @@ -0,0 +1,29 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.create_bypass_rule( + "<RULE_ID>", + "api", + "<NAME>", + Some("<RESOURCE_ID>"), // optional + Some("<DESCRIPTION>"), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-rust/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..4fb484853 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/create-challenge-rule.md @@ -0,0 +1,32 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.create_challenge_rule( + "<RULE_ID>", + "api", + "<NAME>", + Some("<RESOURCE_ID>"), // optional + Some("<DESCRIPTION>"), // optional + Some("compute"), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]), // optional + Some(1), // optional + Some(900) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/create-deny-rule.md b/examples/2.4.x/server-rust/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..eb735bda5 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/create-deny-rule.md @@ -0,0 +1,29 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.create_deny_rule( + "<RULE_ID>", + "api", + "<NAME>", + Some("<RESOURCE_ID>"), // optional + Some("<DESCRIPTION>"), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-rust/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..8d6cf9f38 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,34 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.create_rate_limit_rule( + "<RULE_ID>", + "api", + "<NAME>", + 1, + 1, + Some("<RESOURCE_ID>"), // optional + Some("<DESCRIPTION>"), // optional + Some("ip"), // optional + Some("fixedWindow"), // optional + Some(1), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-rust/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..8b9e3523f --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/create-redirect-rule.md @@ -0,0 +1,31 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.create_redirect_rule( + "<RULE_ID>", + "api", + "<NAME>", + "<LOCATION>", + 300, + Some("<RESOURCE_ID>"), // optional + Some("<DESCRIPTION>"), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/delete-rule.md b/examples/2.4.x/server-rust/examples/waf/delete-rule.md new file mode 100644 index 000000000..b6eed88fe --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/delete-rule.md @@ -0,0 +1,20 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + waf.delete_rule( + "<RULE_ID>" + ).await?; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/get-rule.md b/examples/2.4.x/server-rust/examples/waf/get-rule.md new file mode 100644 index 000000000..fbb9a6b59 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/get-rule.md @@ -0,0 +1,22 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.get_rule( + "<RULE_ID>" + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/list-rules.md b/examples/2.4.x/server-rust/examples/waf/list-rules.md new file mode 100644 index 000000000..d3921227d --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/list-rules.md @@ -0,0 +1,24 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.list_rules( + Some(vec![]), // optional + Some("<SEARCH>"), // optional + Some(false) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-rust/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..06b6d8c21 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/update-bypass-rule.md @@ -0,0 +1,29 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.update_bypass_rule( + "<RULE_ID>", + Some("api"), // optional + Some("<RESOURCE_ID>"), // optional + Some("<NAME>"), // optional + Some("<DESCRIPTION>"), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-rust/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..58a0fc23a --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/update-challenge-rule.md @@ -0,0 +1,32 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.update_challenge_rule( + "<RULE_ID>", + Some("api"), // optional + Some("<RESOURCE_ID>"), // optional + Some("<NAME>"), // optional + Some("<DESCRIPTION>"), // optional + Some("compute"), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]), // optional + Some(1), // optional + Some(900) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/update-deny-rule.md b/examples/2.4.x/server-rust/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..1711ada44 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/update-deny-rule.md @@ -0,0 +1,29 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.update_deny_rule( + "<RULE_ID>", + Some("api"), // optional + Some("<RESOURCE_ID>"), // optional + Some("<NAME>"), // optional + Some("<DESCRIPTION>"), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-rust/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..e23ea2e34 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,33 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.update_rate_limit_rule( + "<RULE_ID>", + Some("api"), // optional + Some("<RESOURCE_ID>"), // optional + Some("<NAME>"), // optional + Some("<DESCRIPTION>"), // optional + Some(1), // optional + Some(1), // optional + Some("ip"), // optional + Some(1), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-rust/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-rust/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..23b125dc5 --- /dev/null +++ b/examples/2.4.x/server-rust/examples/waf/update-redirect-rule.md @@ -0,0 +1,31 @@ +```rust +use appwrite::Client; +use appwrite::services::Waf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + let client = Client::new(); + client.set_endpoint("https://<REGION>.cloud.appwrite.io/v1"); // Your API Endpoint + client.set_project("<YOUR_PROJECT_ID>"); // Your project ID + client.set_key("<YOUR_API_KEY>"); // Your secret API key + + let waf = Waf::new(&client); + + let result = waf.update_redirect_rule( + "<RULE_ID>", + Some("api"), // optional + Some("<RESOURCE_ID>"), // optional + Some("<NAME>"), // optional + Some("<DESCRIPTION>"), // optional + Some("<LOCATION>"), // optional + Some(300), // optional + Some(-100000), // optional + Some(false), // optional + Some(vec![]) // optional + ).await?; + + let _ = result; + + Ok(()) +} +``` diff --git a/examples/2.4.x/server-swift/examples/oauth2/authorize-post.md b/examples/2.4.x/server-swift/examples/oauth2/authorize-post.md index 3404c7725..6f547d7de 100644 --- a/examples/2.4.x/server-swift/examples/oauth2/authorize-post.md +++ b/examples/2.4.x/server-swift/examples/oauth2/authorize-post.md @@ -20,7 +20,7 @@ let oauth2Authorize = try await oauth2.authorizePost( prompt: "<PROMPT>", // optional max_age: 0, // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional - resource: "", // optional + resource: [], // optional audience: "<AUDIENCE>", // optional request_uri: "<REQUEST_URI>" // optional ) diff --git a/examples/2.4.x/server-swift/examples/oauth2/authorize.md b/examples/2.4.x/server-swift/examples/oauth2/authorize.md index abfbbbccb..b4a601d04 100644 --- a/examples/2.4.x/server-swift/examples/oauth2/authorize.md +++ b/examples/2.4.x/server-swift/examples/oauth2/authorize.md @@ -20,7 +20,7 @@ let oauth2Authorize = try await oauth2.authorize( prompt: "<PROMPT>", // optional max_age: 0, // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional - resource: "", // optional + resource: [], // optional audience: "<AUDIENCE>", // optional request_uri: "<REQUEST_URI>" // optional ) diff --git a/examples/2.4.x/server-swift/examples/oauth2/create-device-authorization.md b/examples/2.4.x/server-swift/examples/oauth2/create-device-authorization.md index 925773fc7..21146518e 100644 --- a/examples/2.4.x/server-swift/examples/oauth2/create-device-authorization.md +++ b/examples/2.4.x/server-swift/examples/oauth2/create-device-authorization.md @@ -12,7 +12,7 @@ let oauth2DeviceAuthorization = try await oauth2.createDeviceAuthorization( client_id: "<CLIENT_ID>", // optional scope: "<SCOPE>", // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional - resource: "", // optional + resource: [], // optional audience: "<AUDIENCE>" // optional ) diff --git a/examples/2.4.x/server-swift/examples/oauth2/create-par.md b/examples/2.4.x/server-swift/examples/oauth2/create-par.md index 7fab6713f..6a672577f 100644 --- a/examples/2.4.x/server-swift/examples/oauth2/create-par.md +++ b/examples/2.4.x/server-swift/examples/oauth2/create-par.md @@ -20,7 +20,7 @@ let oauth2PAR = try await oauth2.createPAR( prompt: "<PROMPT>", // optional max_age: 0, // optional authorization_details: "<AUTHORIZATION_DETAILS>", // optional - resource: "", // optional + resource: [], // optional audience: "<AUDIENCE>" // optional ) diff --git a/examples/2.4.x/server-swift/examples/oauth2/create-token.md b/examples/2.4.x/server-swift/examples/oauth2/create-token.md index d519b8ef9..0ea4035e8 100644 --- a/examples/2.4.x/server-swift/examples/oauth2/create-token.md +++ b/examples/2.4.x/server-swift/examples/oauth2/create-token.md @@ -17,7 +17,7 @@ let oauth2Token = try await oauth2.createToken( client_secret: "<CLIENT_SECRET>", // optional code_verifier: "<CODE_VERIFIER>", // optional redirect_uri: "https://example.com", // optional - resource: "", // optional + resource: [], // optional audience: "<AUDIENCE>" // optional ) diff --git a/examples/2.4.x/server-swift/examples/waf/create-bypass-rule.md b/examples/2.4.x/server-swift/examples/waf/create-bypass-rule.md new file mode 100644 index 000000000..fdf9af511 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/create-bypass-rule.md @@ -0,0 +1,22 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleBypass = try await waf.createBypassRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/create-challenge-rule.md b/examples/2.4.x/server-swift/examples/waf/create-challenge-rule.md new file mode 100644 index 000000000..c6d5247ea --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/create-challenge-rule.md @@ -0,0 +1,25 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleChallenge = try await waf.createChallengeRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + challengeType: "compute", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional + difficulty: 1, // optional + ttl: 900 // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/create-deny-rule.md b/examples/2.4.x/server-swift/examples/waf/create-deny-rule.md new file mode 100644 index 000000000..1e16a1a32 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/create-deny-rule.md @@ -0,0 +1,22 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleDeny = try await waf.createDenyRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/create-rate-limit-rule.md b/examples/2.4.x/server-swift/examples/waf/create-rate-limit-rule.md new file mode 100644 index 000000000..c3ee2b8e7 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/create-rate-limit-rule.md @@ -0,0 +1,27 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleRateLimit = try await waf.createRateLimitRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + limit: 1, + interval: 1, + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + key: "ip", // optional + strategy: "fixedWindow", // optional + maxBucketSize: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/create-redirect-rule.md b/examples/2.4.x/server-swift/examples/waf/create-redirect-rule.md new file mode 100644 index 000000000..ba66800c6 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/create-redirect-rule.md @@ -0,0 +1,24 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleRedirect = try await waf.createRedirectRule( + ruleId: "<RULE_ID>", + resourceType: "api", + name: "<NAME>", + location: "<LOCATION>", + statusCode: 300, + resourceId: "<RESOURCE_ID>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/delete-rule.md b/examples/2.4.x/server-swift/examples/waf/delete-rule.md new file mode 100644 index 000000000..ede166d83 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/delete-rule.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let result = try await waf.deleteRule( + ruleId: "<RULE_ID>" +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/get-rule.md b/examples/2.4.x/server-swift/examples/waf/get-rule.md new file mode 100644 index 000000000..2d3bbb26a --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/get-rule.md @@ -0,0 +1,15 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let result = try await waf.getRule( + ruleId: "<RULE_ID>" +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/list-rules.md b/examples/2.4.x/server-swift/examples/waf/list-rules.md new file mode 100644 index 000000000..b279fa2e3 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/list-rules.md @@ -0,0 +1,17 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleList = try await waf.listRules( + queries: [], // optional + search: "<SEARCH>", // optional + total: false // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/update-bypass-rule.md b/examples/2.4.x/server-swift/examples/waf/update-bypass-rule.md new file mode 100644 index 000000000..ec670e089 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/update-bypass-rule.md @@ -0,0 +1,22 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleBypass = try await waf.updateBypassRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/update-challenge-rule.md b/examples/2.4.x/server-swift/examples/waf/update-challenge-rule.md new file mode 100644 index 000000000..2198c03ad --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/update-challenge-rule.md @@ -0,0 +1,25 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleChallenge = try await waf.updateChallengeRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + challengeType: "compute", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [], // optional + difficulty: 1, // optional + ttl: 900 // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/update-deny-rule.md b/examples/2.4.x/server-swift/examples/waf/update-deny-rule.md new file mode 100644 index 000000000..8c54948c5 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/update-deny-rule.md @@ -0,0 +1,22 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleDeny = try await waf.updateDenyRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/update-rate-limit-rule.md b/examples/2.4.x/server-swift/examples/waf/update-rate-limit-rule.md new file mode 100644 index 000000000..766520221 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/update-rate-limit-rule.md @@ -0,0 +1,26 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleRateLimit = try await waf.updateRateLimitRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + limit: 1, // optional + interval: 1, // optional + key: "ip", // optional + maxBucketSize: 1, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +) + +``` diff --git a/examples/2.4.x/server-swift/examples/waf/update-redirect-rule.md b/examples/2.4.x/server-swift/examples/waf/update-redirect-rule.md new file mode 100644 index 000000000..a18b5fdf9 --- /dev/null +++ b/examples/2.4.x/server-swift/examples/waf/update-redirect-rule.md @@ -0,0 +1,24 @@ +```swift +import Appwrite + +let client = Client() + .setEndpoint("https://<REGION>.cloud.appwrite.io/v1") // Your API Endpoint + .setProject("<YOUR_PROJECT_ID>") // Your project ID + .setKey("<YOUR_API_KEY>") // Your secret API key + +let waf = Waf(client) + +let wafRuleRedirect = try await waf.updateRedirectRule( + ruleId: "<RULE_ID>", + resourceType: "api", // optional + resourceId: "<RESOURCE_ID>", // optional + name: "<NAME>", // optional + description: "<DESCRIPTION>", // optional + location: "<LOCATION>", // optional + statusCode: 300, // optional + priority: -100000, // optional + enabled: false, // optional + conditions: [] // optional +) + +``` diff --git a/specs/2.4.x/open-api3-2.4.x-client.json b/specs/2.4.x/open-api3-2.4.x-client.json new file mode 100644 index 000000000..d3be58cd6 --- /dev/null +++ b/specs/2.4.x/open-api3-2.4.x-client.json @@ -0,0 +1,30295 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "2.4.0", + "title": "Appwrite", + "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", + "termsOfService": "https:\/\/appwrite.io\/policy\/terms", + "contact": { + "name": "Appwrite Team", + "url": "https:\/\/appwrite.io\/support", + "email": "team@appwrite.io" + }, + "license": { + "name": "BSD-3-Clause", + "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" + } + }, + "servers": [ + { + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." + }, + { + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } + } + ], + "paths": { + "\/account": { + "get": { + "summary": "Get account", + "operationId": "accountGet", + "tags": [ + "account" + ], + "description": "Get the currently logged in user.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create account", + "operationId": "accountCreate", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/consents": { + "get": { + "summary": "List consents", + "operationId": "accountListConsents", + "tags": [ + "account" + ], + "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", + "responses": { + "200": { + "description": "OAuth2 consents list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}": { + "get": { + "summary": "Get consent", + "operationId": "accountGetConsent", + "tags": [ + "account" + ], + "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", + "responses": { + "200": { + "description": "OAuth2 Consent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Consent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consent-tokens.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { + "get": { + "summary": "Get consent token", + "operationId": "accountGetConsentToken", + "tags": [ + "account" + ], + "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 Consent Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/email": { + "patch": { + "summary": "Update email", + "operationId": "accountUpdateEmail", + "tags": [ + "account" + ], + "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/identities": { + "get": { + "summary": "List identities", + "operationId": "accountListIdentities", + "tags": [ + "account" + ], + "description": "Get the list of identities for the currently logged in user.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "accountDeleteIdentity", + "tags": [ + "account" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/jwts": { + "post": { + "summary": "Create JWT", + "operationId": "accountCreateJWT", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-jwt.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/account\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "accountUpdateMFA", + "tags": [ + "account" + ], + "description": "Enable or disable MFA on an account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/account\/mfa\/authenticators\/{type}": { + "post": { + "summary": "Create authenticator", + "operationId": "accountCreateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "responses": { + "200": { + "description": "MFAType", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaType" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + }, + "methods": [ + { + "name": "createMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + } + }, + { + "name": "createMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator. Must be `totp`", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update authenticator (confirmation)", + "operationId": "accountUpdateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + }, + "methods": [ + { + "name": "updateMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + } + }, + { + "name": "updateMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete authenticator", + "operationId": "accountDeleteMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Delete an authenticator for a user by ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa\/challenges": { + "post": { + "summary": "Create MFA challenge", + "operationId": "accountCreateMfaChallenge", + "tags": [ + "account" + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallenge" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + }, + "methods": [ + { + "name": "createMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + } + }, + { + "name": "createMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "factor": { + "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", + "type": "string", + "example": "email", + "title": "AuthenticationFactor", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + }, + { + "type": "string", + "enum": [ + "recoverycode" + ], + "title": "recoverycode" + }, + { + "type": "string", + "enum": [ + "custom" + ], + "title": "custom" + } + ] + } + }, + "required": [ + "factor" + ] + } + } + } + } + }, + "put": { + "summary": "Update MFA challenge (confirmation)", + "operationId": "accountUpdateMfaChallenge", + "tags": [ + "account" + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},challengeId:{param-challengeId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + }, + "methods": [ + { + "name": "updateMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + } + }, + { + "name": "updateMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "ID of the challenge.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "challengeId", + "otp" + ] + } + } + } + } + } + }, + "\/account\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "accountListMfaFactors", + "tags": [ + "account" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/mfa\/recovery-codes": { + "get": { + "summary": "List MFA recovery codes", + "operationId": "accountGetMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create MFA recovery codes", + "operationId": "accountCreateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "accountUpdateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/name": { + "patch": { + "summary": "Update name", + "operationId": "accountUpdateName", + "tags": [ + "account" + ], + "description": "Update currently logged in user account name.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/account\/passkeys": { + "get": { + "summary": "List passkeys", + "operationId": "accountListPasskeys", + "tags": [ + "account" + ], + "description": "Get the list of verified passkeys registered by the currently logged in user.", + "responses": { + "200": { + "description": "Passkeys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/list-passkeys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter and order on the following attributes: $id, $createdAt, $updatedAt, name, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create passkey", + "operationId": "accountCreatePasskey", + "tags": [ + "account" + ], + "description": "Start registering a passkey for the currently logged in user. The session must have signed in or completed an MFA challenge within the last 10 minutes. Pass the returned `publicKey` options to `navigator.credentials.create()`, then complete the registration with [Update passkey verification](\/docs\/references\/cloud\/client-web\/account#updatePasskeyVerification). The passkey stays pending until verified, and the challenge expires after 5 minutes.", + "responses": { + "201": { + "description": "Passkey Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/create-passkey.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "passkeyId": { + "description": "Passkey ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "unique()", + "example": "<PASSKEY_ID>" + }, + "name": { + "description": "Passkey name, shown when listing passkeys. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + } + } + } + } + } + } + }, + "\/account\/passkeys\/{passkeyId}": { + "get": { + "summary": "Get passkey", + "operationId": "accountGetPasskey", + "tags": [ + "account" + ], + "description": "Get a verified passkey of the currently logged in user by its unique ID.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/get-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update passkey", + "operationId": "accountUpdatePasskey", + "tags": [ + "account" + ], + "description": "Rename a passkey of the currently logged in user.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/update-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Passkey name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete passkey", + "operationId": "accountDeletePasskey", + "tags": [ + "account" + ], + "description": "Delete a passkey from the currently logged in user. The passkey can no longer be used to sign in, although it may remain stored on the user's device. The session must have signed in or completed an MFA challenge within the last 10 minutes.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/delete-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/passkeys\/{passkeyId}\/verification": { + "put": { + "summary": "Update passkey verification", + "operationId": "accountUpdatePasskeyVerification", + "tags": [ + "account" + ], + "description": "Complete a passkey registration started with [Create passkey](\/docs\/references\/cloud\/client-web\/account#createPasskey). Pass the JSON form of the credential returned by `navigator.credentials.create()`, for example `credential.toJSON()`. Each registration can be verified once; a failed attempt requires starting it again.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/update-passkey-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "credential": { + "description": "Registration credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "credential" + ] + } + } + } + } + } + }, + "\/account\/password": { + "patch": { + "summary": "Update password", + "operationId": "accountUpdatePassword", + "tags": [ + "account" + ], + "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-password.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "oldPassword": { + "description": "Current user password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/account\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "accountUpdatePhone", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "phone", + "password" + ] + } + } + } + } + } + }, + "\/account\/prefs": { + "get": { + "summary": "Get account preferences", + "operationId": "accountGetPrefs", + "tags": [ + "account" + ], + "description": "Get the preferences as a key-value object for the currently logged in user.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update preferences", + "operationId": "accountUpdatePrefs", + "tags": [ + "account" + ], + "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/account\/recovery": { + "post": { + "summary": "Create password recovery", + "operationId": "accountCreateRecovery", + "tags": [ + "account" + ], + "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "email", + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (confirmation)", + "operationId": "accountUpdateRecovery", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid reset token.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/recovery\/otp": { + "post": { + "summary": "Create password recovery (OTP)", + "operationId": "accountCreateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "email" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (OTP)", + "operationId": "accountUpdateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid recovery OTP code.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions": { + "get": { + "summary": "List sessions", + "operationId": "accountListSessions", + "tags": [ + "account" + ], + "description": "Get the list of active sessions across different devices for the currently logged in user.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "delete": { + "summary": "Delete sessions", + "operationId": "accountDeleteSessions", + "tags": [ + "account" + ], + "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-sessions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "current", + "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/anonymous": { + "post": { + "summary": "Create anonymous session", + "operationId": "accountCreateAnonymousSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-anonymous-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/sessions\/email": { + "post": { + "summary": "Create email password session", + "operationId": "accountCreateEmailPasswordSession", + "tags": [ + "account" + ], + "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-email-password-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},email:{param-email}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "duration": { + "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions\/id-token": { + "post": { + "summary": "Create ID token session", + "operationId": "accountCreateIdTokenSession", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-id-token-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", + "type": "string", + "example": "apple", + "title": "IdTokenProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + } + ] + }, + "idToken": { + "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", + "type": "string", + "example": "<ID_TOKEN>" + }, + "nonce": { + "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "accessToken": { + "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", + "type": "string", + "default": "", + "example": "<ACCESS_TOKEN>" + }, + "accessTokenExpiry": { + "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "name": { + "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "provider", + "idToken" + ] + } + } + } + } + } + }, + "\/account\/sessions\/magic-url": { + "put": { + "summary": "Update magic URL session", + "operationId": "accountUpdateMagicURLSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-magic-url-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 session", + "operationId": "accountCreateOAuth2Session", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-o-auth-2-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "state", + "description": "An opaque value your app generates and keeps, for example in a cookie. It is returned unchanged as the `state` query parameter on the success and failure URLs, so your app can check that the sign-in it receives is one it started. Printable ASCII only (RFC 6749 Appendix A.5). Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/phone": { + "put": { + "summary": "Update phone session", + "operationId": "accountUpdatePhoneSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-phone-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/token": { + "post": { + "summary": "Create session", + "operationId": "accountCreateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/{sessionId}": { + "get": { + "summary": "Get session", + "operationId": "accountGetSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/get-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to get the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update session", + "operationId": "accountUpdateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to update the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete session", + "operationId": "accountDeleteSession", + "tags": [ + "account" + ], + "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-session.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to delete the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + } + }, + "\/account\/status": { + "patch": { + "summary": "Update status", + "operationId": "accountUpdateStatus", + "tags": [ + "account" + ], + "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/targets\/push": { + "post": { + "summary": "Create push target", + "operationId": "accountCreatePushTarget", + "tags": [ + "account" + ], + "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model. A session holds one push target per provider, so if one already exists this endpoint updates and returns that target instead of creating a second one, and a device that rotates its token is never notified twice.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/create-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TARGET_ID>" + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + } + }, + "required": [ + "targetId", + "identifier" + ] + } + } + } + } + } + }, + "\/account\/targets\/{targetId}\/push": { + "put": { + "summary": "Update push target", + "operationId": "accountUpdatePushTarget", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/update-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + } + }, + "required": [ + "identifier" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete push target", + "operationId": "accountDeletePushTarget", + "tags": [ + "account" + ], + "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/delete-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/tokens\/email": { + "post": { + "summary": "Create email token (OTP)", + "operationId": "accountCreateEmailToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-email-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/magic-url": { + "post": { + "summary": "Create magic URL token", + "operationId": "accountCreateMagicURLToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-magic-url-token.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 token", + "operationId": "accountCreateOAuth2Token", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-o-auth-2-token.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "state", + "description": "An opaque value your app generates and keeps, for example in a cookie. It is returned unchanged as the `state` query parameter on the success and failure URLs, so your app can check that the sign-in it receives is one it started. Printable ASCII only (RFC 6749 Appendix A.5). Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/account\/tokens\/passkey": { + "post": { + "summary": "Create passkey token", + "operationId": "accountCreatePasskeyToken", + "tags": [ + "account" + ], + "description": "Start signing in with a passkey. No email or user ID is needed: pass the returned `publicKey` options to `navigator.credentials.get()` and the user picks one of their passkeys. Then call [Update passkey token](\/docs\/references\/cloud\/client-web\/account#updatePasskeyToken) with the credential to receive a token, and exchange it with [Create session](\/docs\/references\/cloud\/client-web\/account#createSession). The challenge expires after 5 minutes.", + "responses": { + "201": { + "description": "Passkey Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-passkey-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update passkey token", + "operationId": "accountUpdatePasskeyToken", + "tags": [ + "account" + ], + "description": "Complete a passkey sign-in started with [Create passkey token](\/docs\/references\/cloud\/client-web\/account#createPasskeyToken). Pass the challenge ID and the JSON form of the credential returned by `navigator.credentials.get()`, for example `credential.toJSON()`. The returned token includes its secret and expires after 1 minute: exchange it for a session with [Create session](\/docs\/references\/cloud\/client-web\/account#createSession). Passkeys require user verification, so the session also satisfies MFA. Each challenge can only be used once.", + "responses": { + "201": { + "description": "Token Secret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/tokenSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/update-passkey-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "Challenge ID returned by createPasskeyToken.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "credential": { + "description": "Authentication credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "challengeId", + "credential" + ] + } + } + } + } + } + }, + "\/account\/tokens\/phone": { + "post": { + "summary": "Create phone token", + "operationId": "accountCreatePhoneToken", + "tags": [ + "account" + ], + "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-phone-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},phone:{param-phone}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "userId", + "phone" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email": { + "post": { + "summary": "Create email verification", + "operationId": "accountCreateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-email-verification.md", + "public": true + }, + { + "name": "createVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createEmailVerification" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "url": { + "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update email verification (confirmation)", + "operationId": "accountUpdateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "updateEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-email-verification.md", + "public": true + }, + { + "name": "updateVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateEmailVerification" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email\/otp": { + "post": { + "summary": "Create email verification (OTP)", + "operationId": "accountCreateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "put": { + "summary": "Update email verification (OTP)", + "operationId": "accountUpdateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification OTP code.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/phone": { + "post": { + "summary": "Create phone verification", + "operationId": "accountCreatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},userId:{userId}", + "url:{url},ip:{ip}" + ], + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update phone verification (confirmation)", + "operationId": "accountUpdatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}\/events": { + "post": { + "summary": "Track analytics event", + "operationId": "analyticsCreateEvent", + "tags": [ + "analytics" + ], + "description": "Send a tracking event from a browser, native app, or server-side SDK.", + "responses": { + "202": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "analytics\/create-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "global" + ], + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Full page URL or screen identifier.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "domain": { + "description": "Hostname (e.g. example.com).", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "referrer": { + "description": "Referrer URL.", + "type": "string", + "default": "", + "example": "<REFERRER>" + }, + "screenWidth": { + "description": "Viewport width in CSS pixels.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "sessionHash": { + "description": "Optional session hash (provided by SDK).", + "type": "string", + "default": "", + "example": "<SESSION_HASH>" + }, + "scrollDepth": { + "description": "Scroll depth percentage 0-100.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "engagementTime": { + "description": "Engagement time in seconds, 0-4294967295.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "props": { + "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "userId": { + "description": "Override user ID. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "ip": { + "description": "Override IP address. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<IP>" + }, + "userAgent": { + "description": "Override user agent. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + } + }, + "required": [ + "name", + "url" + ] + } + } + } + } + } + }, + "\/apps": { + "get": { + "summary": "List Applications", + "operationId": "appsList", + "tags": [ + "apps" + ], + "description": "List applications.", + "responses": { + "200": { + "description": "Apps list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/list.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Application", + "operationId": "appsCreate", + "tags": [ + "apps" + ], + "description": "Create a new application.", + "responses": { + "201": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/create.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<APP_ID>" + }, + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "teamId": { + "description": "Team unique ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + } + }, + "required": [ + "appId", + "name", + "redirectUris" + ] + } + } + } + } + } + }, + "\/apps\/scopes\/installations": { + "get": { + "summary": "List Installation Scopes", + "operationId": "appsListInstallationScopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request when installed on a team.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-installation-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/apps\/scopes\/oauth2": { + "get": { + "summary": "List OAuth2 Scopes", + "operationId": "appsListOAuth2Scopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request during the OAuth2 flow.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-o-auth-2-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/apps\/{appId}": { + "get": { + "summary": "Get Application", + "operationId": "appsGet", + "tags": [ + "apps" + ], + "description": "Get an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/get.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Application", + "operationId": "appsUpdate", + "tags": [ + "apps" + ], + "description": "Update an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "installationScopes": { + "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationRedirectUrl": { + "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete Application", + "operationId": "appsDelete", + "tags": [ + "apps" + ], + "description": "Delete an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "appsListInstallations", + "tags": [ + "apps" + ], + "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "appsGetInstallation", + "tags": [ + "apps" + ], + "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Installation", + "operationId": "appsDeleteInstallation", + "tags": [ + "apps" + ], + "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}\/tokens": { + "post": { + "summary": "Create Installation Token", + "operationId": "appsCreateInstallationToken", + "tags": [ + "apps" + ], + "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", + "responses": { + "201": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/create-installation-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.write", + "apps.tokens.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys": { + "get": { + "summary": "List App Keys", + "operationId": "appsListKeys", + "tags": [ + "apps" + ], + "description": "List app keys for an application.", + "responses": { + "200": { + "description": "App keys list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/list-keys.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create App Key", + "operationId": "appsCreateKey", + "tags": [ + "apps" + ], + "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", + "responses": { + "201": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/create-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys\/{keyId}": { + "get": { + "summary": "Get App Key", + "operationId": "appsGetKey", + "tags": [ + "apps" + ], + "description": "Get an app key by its unique ID.", + "responses": { + "200": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/get-key.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete App Key", + "operationId": "appsDeleteKey", + "tags": [ + "apps" + ], + "description": "Delete an app key by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/delete-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets": { + "get": { + "summary": "List Secrets", + "operationId": "appsListSecrets", + "tags": [ + "apps" + ], + "description": "List client secrets for an application.", + "responses": { + "200": { + "description": "App secrets list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/list-secrets.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Secret", + "operationId": "appsCreateSecret", + "tags": [ + "apps" + ], + "description": "Create a new client secret for an application.", + "responses": { + "201": { + "description": "AppSecretPlaintext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretPlaintext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/create-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets\/{secretId}": { + "get": { + "summary": "Get Secret", + "operationId": "appsGetSecret", + "tags": [ + "apps" + ], + "description": "Get an application client secret by its unique ID.", + "responses": { + "200": { + "description": "AppSecret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/get-secret.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Secret", + "operationId": "appsDeleteSecret", + "tags": [ + "apps" + ], + "description": "Delete an application client secret by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/delete-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/team": { + "patch": { + "summary": "Update Team", + "operationId": "appsUpdateTeam", + "tags": [ + "apps" + ], + "description": "Transfer an application to another team by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-team.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer application to.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/tokens": { + "delete": { + "summary": "Delete Tokens", + "operationId": "appsDeleteTokens", + "tags": [ + "apps" + ], + "description": "Revoke all tokens for an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete-tokens.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/avatars\/browsers\/{code}": { + "get": { + "summary": "Get browser icon", + "operationId": "avatarsGetBrowser", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-browser.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Browser Code.", + "required": true, + "schema": { + "type": "string", + "example": "aa", + "title": "Browser", + "oneOf": [ + { + "type": "string", + "enum": [ + "aa" + ], + "title": "Avant Browser" + }, + { + "type": "string", + "enum": [ + "an" + ], + "title": "Android WebView Beta" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Google Chrome" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "Google Chrome (iOS)" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Google Chrome (Mobile)" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Chromium" + }, + { + "type": "string", + "enum": [ + "ff" + ], + "title": "Mozilla Firefox" + }, + { + "type": "string", + "enum": [ + "sf" + ], + "title": "Safari" + }, + { + "type": "string", + "enum": [ + "mf" + ], + "title": "Mobile Safari" + }, + { + "type": "string", + "enum": [ + "ps" + ], + "title": "Microsoft Edge" + }, + { + "type": "string", + "enum": [ + "oi" + ], + "title": "Microsoft Edge (iOS)" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Opera Mini" + }, + { + "type": "string", + "enum": [ + "op" + ], + "title": "Opera" + }, + { + "type": "string", + "enum": [ + "on" + ], + "title": "Opera (Next)" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/credit-cards\/{code}": { + "get": { + "summary": "Get credit card icon", + "operationId": "avatarsGetCreditCard", + "tags": [ + "avatars" + ], + "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-credit-card.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", + "required": true, + "schema": { + "type": "string", + "example": "amex", + "title": "CreditCard", + "oneOf": [ + { + "type": "string", + "enum": [ + "amex" + ], + "title": "American Express" + }, + { + "type": "string", + "enum": [ + "argencard" + ], + "title": "Argencard" + }, + { + "type": "string", + "enum": [ + "cabal" + ], + "title": "Cabal" + }, + { + "type": "string", + "enum": [ + "cencosud" + ], + "title": "Cencosud" + }, + { + "type": "string", + "enum": [ + "diners" + ], + "title": "Diners Club" + }, + { + "type": "string", + "enum": [ + "discover" + ], + "title": "Discover" + }, + { + "type": "string", + "enum": [ + "elo" + ], + "title": "Elo" + }, + { + "type": "string", + "enum": [ + "hipercard" + ], + "title": "Hipercard" + }, + { + "type": "string", + "enum": [ + "jcb" + ], + "title": "JCB" + }, + { + "type": "string", + "enum": [ + "mastercard" + ], + "title": "Mastercard" + }, + { + "type": "string", + "enum": [ + "naranja" + ], + "title": "Naranja" + }, + { + "type": "string", + "enum": [ + "targeta-shopping" + ], + "title": "Tarjeta Shopping" + }, + { + "type": "string", + "enum": [ + "unionpay" + ], + "title": "Union Pay" + }, + { + "type": "string", + "enum": [ + "visa" + ], + "title": "Visa" + }, + { + "type": "string", + "enum": [ + "mir" + ], + "title": "MIR" + }, + { + "type": "string", + "enum": [ + "maestro" + ], + "title": "Maestro" + }, + { + "type": "string", + "enum": [ + "rupay" + ], + "title": "Rupay" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/favicon": { + "get": { + "summary": "Get favicon", + "operationId": "avatarsGetFavicon", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-favicon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to fetch the favicon from.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/flags\/{code}": { + "get": { + "summary": "Get country flag", + "operationId": "avatarsGetFlag", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-flag.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Country Code. ISO Alpha-2 country code format.", + "required": true, + "schema": { + "type": "string", + "example": "af", + "title": "Flag", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "Afghanistan" + }, + { + "type": "string", + "enum": [ + "ao" + ], + "title": "Angola" + }, + { + "type": "string", + "enum": [ + "al" + ], + "title": "Albania" + }, + { + "type": "string", + "enum": [ + "ad" + ], + "title": "Andorra" + }, + { + "type": "string", + "enum": [ + "ae" + ], + "title": "United Arab Emirates" + }, + { + "type": "string", + "enum": [ + "ar" + ], + "title": "Argentina" + }, + { + "type": "string", + "enum": [ + "am" + ], + "title": "Armenia" + }, + { + "type": "string", + "enum": [ + "ag" + ], + "title": "Antigua and Barbuda" + }, + { + "type": "string", + "enum": [ + "au" + ], + "title": "Australia" + }, + { + "type": "string", + "enum": [ + "at" + ], + "title": "Austria" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "Azerbaijan" + }, + { + "type": "string", + "enum": [ + "bi" + ], + "title": "Burundi" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "Belgium" + }, + { + "type": "string", + "enum": [ + "bj" + ], + "title": "Benin" + }, + { + "type": "string", + "enum": [ + "bf" + ], + "title": "Burkina Faso" + }, + { + "type": "string", + "enum": [ + "bd" + ], + "title": "Bangladesh" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "Bulgaria" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "Bahrain" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "Bahamas" + }, + { + "type": "string", + "enum": [ + "ba" + ], + "title": "Bosnia and Herzegovina" + }, + { + "type": "string", + "enum": [ + "by" + ], + "title": "Belarus" + }, + { + "type": "string", + "enum": [ + "bz" + ], + "title": "Belize" + }, + { + "type": "string", + "enum": [ + "bo" + ], + "title": "Bolivia" + }, + { + "type": "string", + "enum": [ + "br" + ], + "title": "Brazil" + }, + { + "type": "string", + "enum": [ + "bb" + ], + "title": "Barbados" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "Brunei Darussalam" + }, + { + "type": "string", + "enum": [ + "bt" + ], + "title": "Bhutan" + }, + { + "type": "string", + "enum": [ + "bw" + ], + "title": "Botswana" + }, + { + "type": "string", + "enum": [ + "cf" + ], + "title": "Central African Republic" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "Canada" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Switzerland" + }, + { + "type": "string", + "enum": [ + "cl" + ], + "title": "Chile" + }, + { + "type": "string", + "enum": [ + "cn" + ], + "title": "China" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "C\u00f4te d'Ivoire" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Cameroon" + }, + { + "type": "string", + "enum": [ + "cd" + ], + "title": "Democratic Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "cg" + ], + "title": "Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "co" + ], + "title": "Colombia" + }, + { + "type": "string", + "enum": [ + "km" + ], + "title": "Comoros" + }, + { + "type": "string", + "enum": [ + "cv" + ], + "title": "Cape Verde" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Costa Rica" + }, + { + "type": "string", + "enum": [ + "cu" + ], + "title": "Cuba" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "Cyprus" + }, + { + "type": "string", + "enum": [ + "cz" + ], + "title": "Czech Republic" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "Germany" + }, + { + "type": "string", + "enum": [ + "dj" + ], + "title": "Djibouti" + }, + { + "type": "string", + "enum": [ + "dm" + ], + "title": "Dominica" + }, + { + "type": "string", + "enum": [ + "dk" + ], + "title": "Denmark" + }, + { + "type": "string", + "enum": [ + "do" + ], + "title": "Dominican Republic" + }, + { + "type": "string", + "enum": [ + "dz" + ], + "title": "Algeria" + }, + { + "type": "string", + "enum": [ + "ec" + ], + "title": "Ecuador" + }, + { + "type": "string", + "enum": [ + "eg" + ], + "title": "Egypt" + }, + { + "type": "string", + "enum": [ + "er" + ], + "title": "Eritrea" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "Spain" + }, + { + "type": "string", + "enum": [ + "ee" + ], + "title": "Estonia" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "Ethiopia" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "Finland" + }, + { + "type": "string", + "enum": [ + "fj" + ], + "title": "Fiji" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "France" + }, + { + "type": "string", + "enum": [ + "fm" + ], + "title": "Micronesia (Federated States of)" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "Gabon" + }, + { + "type": "string", + "enum": [ + "gb" + ], + "title": "United Kingdom" + }, + { + "type": "string", + "enum": [ + "ge" + ], + "title": "Georgia" + }, + { + "type": "string", + "enum": [ + "gh" + ], + "title": "Ghana" + }, + { + "type": "string", + "enum": [ + "gn" + ], + "title": "Guinea" + }, + { + "type": "string", + "enum": [ + "gm" + ], + "title": "Gambia" + }, + { + "type": "string", + "enum": [ + "gw" + ], + "title": "Guinea-Bissau" + }, + { + "type": "string", + "enum": [ + "gq" + ], + "title": "Equatorial Guinea" + }, + { + "type": "string", + "enum": [ + "gr" + ], + "title": "Greece" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "Grenada" + }, + { + "type": "string", + "enum": [ + "gt" + ], + "title": "Guatemala" + }, + { + "type": "string", + "enum": [ + "gy" + ], + "title": "Guyana" + }, + { + "type": "string", + "enum": [ + "hn" + ], + "title": "Honduras" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "Croatia" + }, + { + "type": "string", + "enum": [ + "ht" + ], + "title": "Haiti" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "Hungary" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "Indonesia" + }, + { + "type": "string", + "enum": [ + "in" + ], + "title": "India" + }, + { + "type": "string", + "enum": [ + "ie" + ], + "title": "Ireland" + }, + { + "type": "string", + "enum": [ + "ir" + ], + "title": "Iran (Islamic Republic of)" + }, + { + "type": "string", + "enum": [ + "iq" + ], + "title": "Iraq" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "Iceland" + }, + { + "type": "string", + "enum": [ + "il" + ], + "title": "Israel" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "Italy" + }, + { + "type": "string", + "enum": [ + "jm" + ], + "title": "Jamaica" + }, + { + "type": "string", + "enum": [ + "jo" + ], + "title": "Jordan" + }, + { + "type": "string", + "enum": [ + "jp" + ], + "title": "Japan" + }, + { + "type": "string", + "enum": [ + "kz" + ], + "title": "Kazakhstan" + }, + { + "type": "string", + "enum": [ + "ke" + ], + "title": "Kenya" + }, + { + "type": "string", + "enum": [ + "kg" + ], + "title": "Kyrgyzstan" + }, + { + "type": "string", + "enum": [ + "kh" + ], + "title": "Cambodia" + }, + { + "type": "string", + "enum": [ + "ki" + ], + "title": "Kiribati" + }, + { + "type": "string", + "enum": [ + "kn" + ], + "title": "Saint Kitts and Nevis" + }, + { + "type": "string", + "enum": [ + "kr" + ], + "title": "South Korea" + }, + { + "type": "string", + "enum": [ + "kw" + ], + "title": "Kuwait" + }, + { + "type": "string", + "enum": [ + "la" + ], + "title": "Lao People's Democratic Republic" + }, + { + "type": "string", + "enum": [ + "lb" + ], + "title": "Lebanon" + }, + { + "type": "string", + "enum": [ + "lr" + ], + "title": "Liberia" + }, + { + "type": "string", + "enum": [ + "ly" + ], + "title": "Libya" + }, + { + "type": "string", + "enum": [ + "lc" + ], + "title": "Saint Lucia" + }, + { + "type": "string", + "enum": [ + "li" + ], + "title": "Liechtenstein" + }, + { + "type": "string", + "enum": [ + "lk" + ], + "title": "Sri Lanka" + }, + { + "type": "string", + "enum": [ + "ls" + ], + "title": "Lesotho" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "Lithuania" + }, + { + "type": "string", + "enum": [ + "lu" + ], + "title": "Luxembourg" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "Latvia" + }, + { + "type": "string", + "enum": [ + "ma" + ], + "title": "Morocco" + }, + { + "type": "string", + "enum": [ + "mc" + ], + "title": "Monaco" + }, + { + "type": "string", + "enum": [ + "md" + ], + "title": "Moldova" + }, + { + "type": "string", + "enum": [ + "mg" + ], + "title": "Madagascar" + }, + { + "type": "string", + "enum": [ + "mv" + ], + "title": "Maldives" + }, + { + "type": "string", + "enum": [ + "mx" + ], + "title": "Mexico" + }, + { + "type": "string", + "enum": [ + "mh" + ], + "title": "Marshall Islands" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "North Macedonia" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "Mali" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "Malta" + }, + { + "type": "string", + "enum": [ + "mm" + ], + "title": "Myanmar" + }, + { + "type": "string", + "enum": [ + "me" + ], + "title": "Montenegro" + }, + { + "type": "string", + "enum": [ + "mn" + ], + "title": "Mongolia" + }, + { + "type": "string", + "enum": [ + "mz" + ], + "title": "Mozambique" + }, + { + "type": "string", + "enum": [ + "mr" + ], + "title": "Mauritania" + }, + { + "type": "string", + "enum": [ + "mu" + ], + "title": "Mauritius" + }, + { + "type": "string", + "enum": [ + "mw" + ], + "title": "Malawi" + }, + { + "type": "string", + "enum": [ + "my" + ], + "title": "Malaysia" + }, + { + "type": "string", + "enum": [ + "na" + ], + "title": "Namibia" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "Niger" + }, + { + "type": "string", + "enum": [ + "ng" + ], + "title": "Nigeria" + }, + { + "type": "string", + "enum": [ + "ni" + ], + "title": "Nicaragua" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "Netherlands" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "Norway" + }, + { + "type": "string", + "enum": [ + "np" + ], + "title": "Nepal" + }, + { + "type": "string", + "enum": [ + "nr" + ], + "title": "Nauru" + }, + { + "type": "string", + "enum": [ + "nz" + ], + "title": "New Zealand" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Oman" + }, + { + "type": "string", + "enum": [ + "pk" + ], + "title": "Pakistan" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "Panama" + }, + { + "type": "string", + "enum": [ + "pe" + ], + "title": "Peru" + }, + { + "type": "string", + "enum": [ + "ph" + ], + "title": "Philippines" + }, + { + "type": "string", + "enum": [ + "pw" + ], + "title": "Palau" + }, + { + "type": "string", + "enum": [ + "pg" + ], + "title": "Papua New Guinea" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "Poland" + }, + { + "type": "string", + "enum": [ + "pf" + ], + "title": "French Polynesia" + }, + { + "type": "string", + "enum": [ + "kp" + ], + "title": "North Korea" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "Portugal" + }, + { + "type": "string", + "enum": [ + "py" + ], + "title": "Paraguay" + }, + { + "type": "string", + "enum": [ + "qa" + ], + "title": "Qatar" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "Romania" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "Russia" + }, + { + "type": "string", + "enum": [ + "rw" + ], + "title": "Rwanda" + }, + { + "type": "string", + "enum": [ + "sa" + ], + "title": "Saudi Arabia" + }, + { + "type": "string", + "enum": [ + "sd" + ], + "title": "Sudan" + }, + { + "type": "string", + "enum": [ + "sn" + ], + "title": "Senegal" + }, + { + "type": "string", + "enum": [ + "sg" + ], + "title": "Singapore" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "Solomon Islands" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "Sierra Leone" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "El Salvador" + }, + { + "type": "string", + "enum": [ + "sm" + ], + "title": "San Marino" + }, + { + "type": "string", + "enum": [ + "so" + ], + "title": "Somalia" + }, + { + "type": "string", + "enum": [ + "rs" + ], + "title": "Serbia" + }, + { + "type": "string", + "enum": [ + "ss" + ], + "title": "South Sudan" + }, + { + "type": "string", + "enum": [ + "st" + ], + "title": "Sao Tome and Principe" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "Suriname" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "Slovakia" + }, + { + "type": "string", + "enum": [ + "si" + ], + "title": "Slovenia" + }, + { + "type": "string", + "enum": [ + "se" + ], + "title": "Sweden" + }, + { + "type": "string", + "enum": [ + "sz" + ], + "title": "Eswatini" + }, + { + "type": "string", + "enum": [ + "sc" + ], + "title": "Seychelles" + }, + { + "type": "string", + "enum": [ + "sy" + ], + "title": "Syria" + }, + { + "type": "string", + "enum": [ + "td" + ], + "title": "Chad" + }, + { + "type": "string", + "enum": [ + "tg" + ], + "title": "Togo" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "Thailand" + }, + { + "type": "string", + "enum": [ + "tj" + ], + "title": "Tajikistan" + }, + { + "type": "string", + "enum": [ + "tm" + ], + "title": "Turkmenistan" + }, + { + "type": "string", + "enum": [ + "tl" + ], + "title": "Timor-Leste" + }, + { + "type": "string", + "enum": [ + "to" + ], + "title": "Tonga" + }, + { + "type": "string", + "enum": [ + "tt" + ], + "title": "Trinidad and Tobago" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "Tunisia" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "Turkey" + }, + { + "type": "string", + "enum": [ + "tv" + ], + "title": "Tuvalu" + }, + { + "type": "string", + "enum": [ + "tz" + ], + "title": "Tanzania" + }, + { + "type": "string", + "enum": [ + "ug" + ], + "title": "Uganda" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "Ukraine" + }, + { + "type": "string", + "enum": [ + "uy" + ], + "title": "Uruguay" + }, + { + "type": "string", + "enum": [ + "us" + ], + "title": "United States" + }, + { + "type": "string", + "enum": [ + "uz" + ], + "title": "Uzbekistan" + }, + { + "type": "string", + "enum": [ + "va" + ], + "title": "Vatican City" + }, + { + "type": "string", + "enum": [ + "vc" + ], + "title": "Saint Vincent and the Grenadines" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "Venezuela" + }, + { + "type": "string", + "enum": [ + "vn" + ], + "title": "Vietnam" + }, + { + "type": "string", + "enum": [ + "vu" + ], + "title": "Vanuatu" + }, + { + "type": "string", + "enum": [ + "ws" + ], + "title": "Samoa" + }, + { + "type": "string", + "enum": [ + "ye" + ], + "title": "Yemen" + }, + { + "type": "string", + "enum": [ + "za" + ], + "title": "South Africa" + }, + { + "type": "string", + "enum": [ + "zm" + ], + "title": "Zambia" + }, + { + "type": "string", + "enum": [ + "zw" + ], + "title": "Zimbabwe" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/image": { + "get": { + "summary": "Get image from URL", + "operationId": "avatarsGetImage", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-image.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Image URL which you want to crop.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/initials": { + "get": { + "summary": "Get user initials", + "operationId": "avatarsGetInitials", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-initials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "background", + "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/photo": { + "get": { + "summary": "Get user photo", + "operationId": "avatarsGetPhoto", + "tags": [ + "avatars" + ], + "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-photo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "width", + "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Output image quality between 0 and 100. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output image format. Defaults to 'png'.", + "required": false, + "schema": { + "type": "string", + "example": "png", + "default": "png" + }, + "in": "query" + }, + { + "name": "rating", + "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", + "required": false, + "schema": { + "type": "string", + "example": "g", + "default": "g" + }, + "in": "query" + }, + { + "name": "userId", + "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", + "required": false, + "schema": { + "type": "string", + "example": "current()", + "default": "" + }, + "in": "query" + }, + { + "name": "emailHash", + "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", + "required": false, + "schema": { + "type": "string", + "example": "<EMAIL_HASH>", + "default": "" + }, + "in": "query" + }, + { + "name": "name", + "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Update photo", + "operationId": "avatarsUpdatePhoto", + "tags": [ + "avatars" + ], + "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", + "responses": { + "200": { + "description": "Account", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/account" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/update-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "file" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete photo", + "operationId": "avatarsDeletePhoto", + "tags": [ + "avatars" + ], + "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/delete-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/avatars\/qr": { + "get": { + "summary": "Get QR code", + "operationId": "avatarsGetQR", + "tags": [ + "avatars" + ], + "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-qr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "text", + "description": "Plain text to be converted to QR code image.", + "required": true, + "schema": { + "type": "string", + "example": "<TEXT>" + }, + "in": "query" + }, + { + "name": "size", + "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 400 + }, + "in": "query" + }, + { + "name": "margin", + "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "download", + "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + } + ] + } + }, + "\/avatars\/screenshots": { + "get": { + "summary": "Get webpage screenshot", + "operationId": "avatarsGetScreenshot", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-screenshot.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to capture.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "headers", + "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", + "required": false, + "schema": { + "type": "object", + "default": {}, + "example": { + "Accept-Language": "en-US,en;q=0.9" + } + }, + "in": "query" + }, + { + "name": "viewportWidth", + "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1920, + "default": 1280 + }, + "in": "query" + }, + { + "name": "viewportHeight", + "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1080, + "default": 720 + }, + "in": "query" + }, + { + "name": "scale", + "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 2, + "default": 1 + }, + "in": "query" + }, + { + "name": "theme", + "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", + "required": false, + "schema": { + "type": "string", + "example": "dark", + "title": "BrowserTheme", + "oneOf": [ + { + "type": "string", + "enum": [ + "light" + ], + "title": "light" + }, + { + "type": "string", + "enum": [ + "dark" + ], + "title": "dark" + } + ], + "default": "light" + }, + "in": "query" + }, + { + "name": "userAgent", + "description": "Custom user agent string. Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", + "default": "" + }, + "in": "query" + }, + { + "name": "fullpage", + "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "locale", + "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "en-US", + "default": "" + }, + "in": "query" + }, + { + "name": "timezone", + "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "America\/New_York", + "title": "Timezone", + "oneOf": [ + { + "type": "string", + "enum": [ + "africa\/abidjan" + ], + "title": "africa\/abidjan" + }, + { + "type": "string", + "enum": [ + "africa\/accra" + ], + "title": "africa\/accra" + }, + { + "type": "string", + "enum": [ + "africa\/addis_ababa" + ], + "title": "africa\/addis_ababa" + }, + { + "type": "string", + "enum": [ + "africa\/algiers" + ], + "title": "africa\/algiers" + }, + { + "type": "string", + "enum": [ + "africa\/asmara" + ], + "title": "africa\/asmara" + }, + { + "type": "string", + "enum": [ + "africa\/bamako" + ], + "title": "africa\/bamako" + }, + { + "type": "string", + "enum": [ + "africa\/bangui" + ], + "title": "africa\/bangui" + }, + { + "type": "string", + "enum": [ + "africa\/banjul" + ], + "title": "africa\/banjul" + }, + { + "type": "string", + "enum": [ + "africa\/bissau" + ], + "title": "africa\/bissau" + }, + { + "type": "string", + "enum": [ + "africa\/blantyre" + ], + "title": "africa\/blantyre" + }, + { + "type": "string", + "enum": [ + "africa\/brazzaville" + ], + "title": "africa\/brazzaville" + }, + { + "type": "string", + "enum": [ + "africa\/bujumbura" + ], + "title": "africa\/bujumbura" + }, + { + "type": "string", + "enum": [ + "africa\/cairo" + ], + "title": "africa\/cairo" + }, + { + "type": "string", + "enum": [ + "africa\/casablanca" + ], + "title": "africa\/casablanca" + }, + { + "type": "string", + "enum": [ + "africa\/ceuta" + ], + "title": "africa\/ceuta" + }, + { + "type": "string", + "enum": [ + "africa\/conakry" + ], + "title": "africa\/conakry" + }, + { + "type": "string", + "enum": [ + "africa\/dakar" + ], + "title": "africa\/dakar" + }, + { + "type": "string", + "enum": [ + "africa\/dar_es_salaam" + ], + "title": "africa\/dar_es_salaam" + }, + { + "type": "string", + "enum": [ + "africa\/djibouti" + ], + "title": "africa\/djibouti" + }, + { + "type": "string", + "enum": [ + "africa\/douala" + ], + "title": "africa\/douala" + }, + { + "type": "string", + "enum": [ + "africa\/el_aaiun" + ], + "title": "africa\/el_aaiun" + }, + { + "type": "string", + "enum": [ + "africa\/freetown" + ], + "title": "africa\/freetown" + }, + { + "type": "string", + "enum": [ + "africa\/gaborone" + ], + "title": "africa\/gaborone" + }, + { + "type": "string", + "enum": [ + "africa\/harare" + ], + "title": "africa\/harare" + }, + { + "type": "string", + "enum": [ + "africa\/johannesburg" + ], + "title": "africa\/johannesburg" + }, + { + "type": "string", + "enum": [ + "africa\/juba" + ], + "title": "africa\/juba" + }, + { + "type": "string", + "enum": [ + "africa\/kampala" + ], + "title": "africa\/kampala" + }, + { + "type": "string", + "enum": [ + "africa\/khartoum" + ], + "title": "africa\/khartoum" + }, + { + "type": "string", + "enum": [ + "africa\/kigali" + ], + "title": "africa\/kigali" + }, + { + "type": "string", + "enum": [ + "africa\/kinshasa" + ], + "title": "africa\/kinshasa" + }, + { + "type": "string", + "enum": [ + "africa\/lagos" + ], + "title": "africa\/lagos" + }, + { + "type": "string", + "enum": [ + "africa\/libreville" + ], + "title": "africa\/libreville" + }, + { + "type": "string", + "enum": [ + "africa\/lome" + ], + "title": "africa\/lome" + }, + { + "type": "string", + "enum": [ + "africa\/luanda" + ], + "title": "africa\/luanda" + }, + { + "type": "string", + "enum": [ + "africa\/lubumbashi" + ], + "title": "africa\/lubumbashi" + }, + { + "type": "string", + "enum": [ + "africa\/lusaka" + ], + "title": "africa\/lusaka" + }, + { + "type": "string", + "enum": [ + "africa\/malabo" + ], + "title": "africa\/malabo" + }, + { + "type": "string", + "enum": [ + "africa\/maputo" + ], + "title": "africa\/maputo" + }, + { + "type": "string", + "enum": [ + "africa\/maseru" + ], + "title": "africa\/maseru" + }, + { + "type": "string", + "enum": [ + "africa\/mbabane" + ], + "title": "africa\/mbabane" + }, + { + "type": "string", + "enum": [ + "africa\/mogadishu" + ], + "title": "africa\/mogadishu" + }, + { + "type": "string", + "enum": [ + "africa\/monrovia" + ], + "title": "africa\/monrovia" + }, + { + "type": "string", + "enum": [ + "africa\/nairobi" + ], + "title": "africa\/nairobi" + }, + { + "type": "string", + "enum": [ + "africa\/ndjamena" + ], + "title": "africa\/ndjamena" + }, + { + "type": "string", + "enum": [ + "africa\/niamey" + ], + "title": "africa\/niamey" + }, + { + "type": "string", + "enum": [ + "africa\/nouakchott" + ], + "title": "africa\/nouakchott" + }, + { + "type": "string", + "enum": [ + "africa\/ouagadougou" + ], + "title": "africa\/ouagadougou" + }, + { + "type": "string", + "enum": [ + "africa\/porto-novo" + ], + "title": "africa\/porto-novo" + }, + { + "type": "string", + "enum": [ + "africa\/sao_tome" + ], + "title": "africa\/sao_tome" + }, + { + "type": "string", + "enum": [ + "africa\/tripoli" + ], + "title": "africa\/tripoli" + }, + { + "type": "string", + "enum": [ + "africa\/tunis" + ], + "title": "africa\/tunis" + }, + { + "type": "string", + "enum": [ + "africa\/windhoek" + ], + "title": "africa\/windhoek" + }, + { + "type": "string", + "enum": [ + "america\/adak" + ], + "title": "america\/adak" + }, + { + "type": "string", + "enum": [ + "america\/anchorage" + ], + "title": "america\/anchorage" + }, + { + "type": "string", + "enum": [ + "america\/anguilla" + ], + "title": "america\/anguilla" + }, + { + "type": "string", + "enum": [ + "america\/antigua" + ], + "title": "america\/antigua" + }, + { + "type": "string", + "enum": [ + "america\/araguaina" + ], + "title": "america\/araguaina" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/buenos_aires" + ], + "title": "america\/argentina\/buenos_aires" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/catamarca" + ], + "title": "america\/argentina\/catamarca" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/cordoba" + ], + "title": "america\/argentina\/cordoba" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/jujuy" + ], + "title": "america\/argentina\/jujuy" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/la_rioja" + ], + "title": "america\/argentina\/la_rioja" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/mendoza" + ], + "title": "america\/argentina\/mendoza" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/rio_gallegos" + ], + "title": "america\/argentina\/rio_gallegos" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/salta" + ], + "title": "america\/argentina\/salta" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_juan" + ], + "title": "america\/argentina\/san_juan" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_luis" + ], + "title": "america\/argentina\/san_luis" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/tucuman" + ], + "title": "america\/argentina\/tucuman" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/ushuaia" + ], + "title": "america\/argentina\/ushuaia" + }, + { + "type": "string", + "enum": [ + "america\/aruba" + ], + "title": "america\/aruba" + }, + { + "type": "string", + "enum": [ + "america\/asuncion" + ], + "title": "america\/asuncion" + }, + { + "type": "string", + "enum": [ + "america\/atikokan" + ], + "title": "america\/atikokan" + }, + { + "type": "string", + "enum": [ + "america\/bahia" + ], + "title": "america\/bahia" + }, + { + "type": "string", + "enum": [ + "america\/bahia_banderas" + ], + "title": "america\/bahia_banderas" + }, + { + "type": "string", + "enum": [ + "america\/barbados" + ], + "title": "america\/barbados" + }, + { + "type": "string", + "enum": [ + "america\/belem" + ], + "title": "america\/belem" + }, + { + "type": "string", + "enum": [ + "america\/belize" + ], + "title": "america\/belize" + }, + { + "type": "string", + "enum": [ + "america\/blanc-sablon" + ], + "title": "america\/blanc-sablon" + }, + { + "type": "string", + "enum": [ + "america\/boa_vista" + ], + "title": "america\/boa_vista" + }, + { + "type": "string", + "enum": [ + "america\/bogota" + ], + "title": "america\/bogota" + }, + { + "type": "string", + "enum": [ + "america\/boise" + ], + "title": "america\/boise" + }, + { + "type": "string", + "enum": [ + "america\/cambridge_bay" + ], + "title": "america\/cambridge_bay" + }, + { + "type": "string", + "enum": [ + "america\/campo_grande" + ], + "title": "america\/campo_grande" + }, + { + "type": "string", + "enum": [ + "america\/cancun" + ], + "title": "america\/cancun" + }, + { + "type": "string", + "enum": [ + "america\/caracas" + ], + "title": "america\/caracas" + }, + { + "type": "string", + "enum": [ + "america\/cayenne" + ], + "title": "america\/cayenne" + }, + { + "type": "string", + "enum": [ + "america\/cayman" + ], + "title": "america\/cayman" + }, + { + "type": "string", + "enum": [ + "america\/chicago" + ], + "title": "america\/chicago" + }, + { + "type": "string", + "enum": [ + "america\/chihuahua" + ], + "title": "america\/chihuahua" + }, + { + "type": "string", + "enum": [ + "america\/ciudad_juarez" + ], + "title": "america\/ciudad_juarez" + }, + { + "type": "string", + "enum": [ + "america\/costa_rica" + ], + "title": "america\/costa_rica" + }, + { + "type": "string", + "enum": [ + "america\/coyhaique" + ], + "title": "america\/coyhaique" + }, + { + "type": "string", + "enum": [ + "america\/creston" + ], + "title": "america\/creston" + }, + { + "type": "string", + "enum": [ + "america\/cuiaba" + ], + "title": "america\/cuiaba" + }, + { + "type": "string", + "enum": [ + "america\/curacao" + ], + "title": "america\/curacao" + }, + { + "type": "string", + "enum": [ + "america\/danmarkshavn" + ], + "title": "america\/danmarkshavn" + }, + { + "type": "string", + "enum": [ + "america\/dawson" + ], + "title": "america\/dawson" + }, + { + "type": "string", + "enum": [ + "america\/dawson_creek" + ], + "title": "america\/dawson_creek" + }, + { + "type": "string", + "enum": [ + "america\/denver" + ], + "title": "america\/denver" + }, + { + "type": "string", + "enum": [ + "america\/detroit" + ], + "title": "america\/detroit" + }, + { + "type": "string", + "enum": [ + "america\/dominica" + ], + "title": "america\/dominica" + }, + { + "type": "string", + "enum": [ + "america\/edmonton" + ], + "title": "america\/edmonton" + }, + { + "type": "string", + "enum": [ + "america\/eirunepe" + ], + "title": "america\/eirunepe" + }, + { + "type": "string", + "enum": [ + "america\/el_salvador" + ], + "title": "america\/el_salvador" + }, + { + "type": "string", + "enum": [ + "america\/fort_nelson" + ], + "title": "america\/fort_nelson" + }, + { + "type": "string", + "enum": [ + "america\/fortaleza" + ], + "title": "america\/fortaleza" + }, + { + "type": "string", + "enum": [ + "america\/glace_bay" + ], + "title": "america\/glace_bay" + }, + { + "type": "string", + "enum": [ + "america\/goose_bay" + ], + "title": "america\/goose_bay" + }, + { + "type": "string", + "enum": [ + "america\/grand_turk" + ], + "title": "america\/grand_turk" + }, + { + "type": "string", + "enum": [ + "america\/grenada" + ], + "title": "america\/grenada" + }, + { + "type": "string", + "enum": [ + "america\/guadeloupe" + ], + "title": "america\/guadeloupe" + }, + { + "type": "string", + "enum": [ + "america\/guatemala" + ], + "title": "america\/guatemala" + }, + { + "type": "string", + "enum": [ + "america\/guayaquil" + ], + "title": "america\/guayaquil" + }, + { + "type": "string", + "enum": [ + "america\/guyana" + ], + "title": "america\/guyana" + }, + { + "type": "string", + "enum": [ + "america\/halifax" + ], + "title": "america\/halifax" + }, + { + "type": "string", + "enum": [ + "america\/havana" + ], + "title": "america\/havana" + }, + { + "type": "string", + "enum": [ + "america\/hermosillo" + ], + "title": "america\/hermosillo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/indianapolis" + ], + "title": "america\/indiana\/indianapolis" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/knox" + ], + "title": "america\/indiana\/knox" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/marengo" + ], + "title": "america\/indiana\/marengo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/petersburg" + ], + "title": "america\/indiana\/petersburg" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/tell_city" + ], + "title": "america\/indiana\/tell_city" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vevay" + ], + "title": "america\/indiana\/vevay" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vincennes" + ], + "title": "america\/indiana\/vincennes" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/winamac" + ], + "title": "america\/indiana\/winamac" + }, + { + "type": "string", + "enum": [ + "america\/inuvik" + ], + "title": "america\/inuvik" + }, + { + "type": "string", + "enum": [ + "america\/iqaluit" + ], + "title": "america\/iqaluit" + }, + { + "type": "string", + "enum": [ + "america\/jamaica" + ], + "title": "america\/jamaica" + }, + { + "type": "string", + "enum": [ + "america\/juneau" + ], + "title": "america\/juneau" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/louisville" + ], + "title": "america\/kentucky\/louisville" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/monticello" + ], + "title": "america\/kentucky\/monticello" + }, + { + "type": "string", + "enum": [ + "america\/kralendijk" + ], + "title": "america\/kralendijk" + }, + { + "type": "string", + "enum": [ + "america\/la_paz" + ], + "title": "america\/la_paz" + }, + { + "type": "string", + "enum": [ + "america\/lima" + ], + "title": "america\/lima" + }, + { + "type": "string", + "enum": [ + "america\/los_angeles" + ], + "title": "america\/los_angeles" + }, + { + "type": "string", + "enum": [ + "america\/lower_princes" + ], + "title": "america\/lower_princes" + }, + { + "type": "string", + "enum": [ + "america\/maceio" + ], + "title": "america\/maceio" + }, + { + "type": "string", + "enum": [ + "america\/managua" + ], + "title": "america\/managua" + }, + { + "type": "string", + "enum": [ + "america\/manaus" + ], + "title": "america\/manaus" + }, + { + "type": "string", + "enum": [ + "america\/marigot" + ], + "title": "america\/marigot" + }, + { + "type": "string", + "enum": [ + "america\/martinique" + ], + "title": "america\/martinique" + }, + { + "type": "string", + "enum": [ + "america\/matamoros" + ], + "title": "america\/matamoros" + }, + { + "type": "string", + "enum": [ + "america\/mazatlan" + ], + "title": "america\/mazatlan" + }, + { + "type": "string", + "enum": [ + "america\/menominee" + ], + "title": "america\/menominee" + }, + { + "type": "string", + "enum": [ + "america\/merida" + ], + "title": "america\/merida" + }, + { + "type": "string", + "enum": [ + "america\/metlakatla" + ], + "title": "america\/metlakatla" + }, + { + "type": "string", + "enum": [ + "america\/mexico_city" + ], + "title": "america\/mexico_city" + }, + { + "type": "string", + "enum": [ + "america\/miquelon" + ], + "title": "america\/miquelon" + }, + { + "type": "string", + "enum": [ + "america\/moncton" + ], + "title": "america\/moncton" + }, + { + "type": "string", + "enum": [ + "america\/monterrey" + ], + "title": "america\/monterrey" + }, + { + "type": "string", + "enum": [ + "america\/montevideo" + ], + "title": "america\/montevideo" + }, + { + "type": "string", + "enum": [ + "america\/montserrat" + ], + "title": "america\/montserrat" + }, + { + "type": "string", + "enum": [ + "america\/nassau" + ], + "title": "america\/nassau" + }, + { + "type": "string", + "enum": [ + "america\/new_york" + ], + "title": "america\/new_york" + }, + { + "type": "string", + "enum": [ + "america\/nome" + ], + "title": "america\/nome" + }, + { + "type": "string", + "enum": [ + "america\/noronha" + ], + "title": "america\/noronha" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/beulah" + ], + "title": "america\/north_dakota\/beulah" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/center" + ], + "title": "america\/north_dakota\/center" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/new_salem" + ], + "title": "america\/north_dakota\/new_salem" + }, + { + "type": "string", + "enum": [ + "america\/nuuk" + ], + "title": "america\/nuuk" + }, + { + "type": "string", + "enum": [ + "america\/ojinaga" + ], + "title": "america\/ojinaga" + }, + { + "type": "string", + "enum": [ + "america\/panama" + ], + "title": "america\/panama" + }, + { + "type": "string", + "enum": [ + "america\/paramaribo" + ], + "title": "america\/paramaribo" + }, + { + "type": "string", + "enum": [ + "america\/phoenix" + ], + "title": "america\/phoenix" + }, + { + "type": "string", + "enum": [ + "america\/port-au-prince" + ], + "title": "america\/port-au-prince" + }, + { + "type": "string", + "enum": [ + "america\/port_of_spain" + ], + "title": "america\/port_of_spain" + }, + { + "type": "string", + "enum": [ + "america\/porto_velho" + ], + "title": "america\/porto_velho" + }, + { + "type": "string", + "enum": [ + "america\/puerto_rico" + ], + "title": "america\/puerto_rico" + }, + { + "type": "string", + "enum": [ + "america\/punta_arenas" + ], + "title": "america\/punta_arenas" + }, + { + "type": "string", + "enum": [ + "america\/rankin_inlet" + ], + "title": "america\/rankin_inlet" + }, + { + "type": "string", + "enum": [ + "america\/recife" + ], + "title": "america\/recife" + }, + { + "type": "string", + "enum": [ + "america\/regina" + ], + "title": "america\/regina" + }, + { + "type": "string", + "enum": [ + "america\/resolute" + ], + "title": "america\/resolute" + }, + { + "type": "string", + "enum": [ + "america\/rio_branco" + ], + "title": "america\/rio_branco" + }, + { + "type": "string", + "enum": [ + "america\/santarem" + ], + "title": "america\/santarem" + }, + { + "type": "string", + "enum": [ + "america\/santiago" + ], + "title": "america\/santiago" + }, + { + "type": "string", + "enum": [ + "america\/santo_domingo" + ], + "title": "america\/santo_domingo" + }, + { + "type": "string", + "enum": [ + "america\/sao_paulo" + ], + "title": "america\/sao_paulo" + }, + { + "type": "string", + "enum": [ + "america\/scoresbysund" + ], + "title": "america\/scoresbysund" + }, + { + "type": "string", + "enum": [ + "america\/sitka" + ], + "title": "america\/sitka" + }, + { + "type": "string", + "enum": [ + "america\/st_barthelemy" + ], + "title": "america\/st_barthelemy" + }, + { + "type": "string", + "enum": [ + "america\/st_johns" + ], + "title": "america\/st_johns" + }, + { + "type": "string", + "enum": [ + "america\/st_kitts" + ], + "title": "america\/st_kitts" + }, + { + "type": "string", + "enum": [ + "america\/st_lucia" + ], + "title": "america\/st_lucia" + }, + { + "type": "string", + "enum": [ + "america\/st_thomas" + ], + "title": "america\/st_thomas" + }, + { + "type": "string", + "enum": [ + "america\/st_vincent" + ], + "title": "america\/st_vincent" + }, + { + "type": "string", + "enum": [ + "america\/swift_current" + ], + "title": "america\/swift_current" + }, + { + "type": "string", + "enum": [ + "america\/tegucigalpa" + ], + "title": "america\/tegucigalpa" + }, + { + "type": "string", + "enum": [ + "america\/thule" + ], + "title": "america\/thule" + }, + { + "type": "string", + "enum": [ + "america\/tijuana" + ], + "title": "america\/tijuana" + }, + { + "type": "string", + "enum": [ + "america\/toronto" + ], + "title": "america\/toronto" + }, + { + "type": "string", + "enum": [ + "america\/tortola" + ], + "title": "america\/tortola" + }, + { + "type": "string", + "enum": [ + "america\/vancouver" + ], + "title": "america\/vancouver" + }, + { + "type": "string", + "enum": [ + "america\/whitehorse" + ], + "title": "america\/whitehorse" + }, + { + "type": "string", + "enum": [ + "america\/winnipeg" + ], + "title": "america\/winnipeg" + }, + { + "type": "string", + "enum": [ + "america\/yakutat" + ], + "title": "america\/yakutat" + }, + { + "type": "string", + "enum": [ + "antarctica\/casey" + ], + "title": "antarctica\/casey" + }, + { + "type": "string", + "enum": [ + "antarctica\/davis" + ], + "title": "antarctica\/davis" + }, + { + "type": "string", + "enum": [ + "antarctica\/dumontdurville" + ], + "title": "antarctica\/dumontdurville" + }, + { + "type": "string", + "enum": [ + "antarctica\/macquarie" + ], + "title": "antarctica\/macquarie" + }, + { + "type": "string", + "enum": [ + "antarctica\/mawson" + ], + "title": "antarctica\/mawson" + }, + { + "type": "string", + "enum": [ + "antarctica\/mcmurdo" + ], + "title": "antarctica\/mcmurdo" + }, + { + "type": "string", + "enum": [ + "antarctica\/palmer" + ], + "title": "antarctica\/palmer" + }, + { + "type": "string", + "enum": [ + "antarctica\/rothera" + ], + "title": "antarctica\/rothera" + }, + { + "type": "string", + "enum": [ + "antarctica\/syowa" + ], + "title": "antarctica\/syowa" + }, + { + "type": "string", + "enum": [ + "antarctica\/troll" + ], + "title": "antarctica\/troll" + }, + { + "type": "string", + "enum": [ + "antarctica\/vostok" + ], + "title": "antarctica\/vostok" + }, + { + "type": "string", + "enum": [ + "arctic\/longyearbyen" + ], + "title": "arctic\/longyearbyen" + }, + { + "type": "string", + "enum": [ + "asia\/aden" + ], + "title": "asia\/aden" + }, + { + "type": "string", + "enum": [ + "asia\/almaty" + ], + "title": "asia\/almaty" + }, + { + "type": "string", + "enum": [ + "asia\/amman" + ], + "title": "asia\/amman" + }, + { + "type": "string", + "enum": [ + "asia\/anadyr" + ], + "title": "asia\/anadyr" + }, + { + "type": "string", + "enum": [ + "asia\/aqtau" + ], + "title": "asia\/aqtau" + }, + { + "type": "string", + "enum": [ + "asia\/aqtobe" + ], + "title": "asia\/aqtobe" + }, + { + "type": "string", + "enum": [ + "asia\/ashgabat" + ], + "title": "asia\/ashgabat" + }, + { + "type": "string", + "enum": [ + "asia\/atyrau" + ], + "title": "asia\/atyrau" + }, + { + "type": "string", + "enum": [ + "asia\/baghdad" + ], + "title": "asia\/baghdad" + }, + { + "type": "string", + "enum": [ + "asia\/bahrain" + ], + "title": "asia\/bahrain" + }, + { + "type": "string", + "enum": [ + "asia\/baku" + ], + "title": "asia\/baku" + }, + { + "type": "string", + "enum": [ + "asia\/bangkok" + ], + "title": "asia\/bangkok" + }, + { + "type": "string", + "enum": [ + "asia\/barnaul" + ], + "title": "asia\/barnaul" + }, + { + "type": "string", + "enum": [ + "asia\/beirut" + ], + "title": "asia\/beirut" + }, + { + "type": "string", + "enum": [ + "asia\/bishkek" + ], + "title": "asia\/bishkek" + }, + { + "type": "string", + "enum": [ + "asia\/brunei" + ], + "title": "asia\/brunei" + }, + { + "type": "string", + "enum": [ + "asia\/chita" + ], + "title": "asia\/chita" + }, + { + "type": "string", + "enum": [ + "asia\/colombo" + ], + "title": "asia\/colombo" + }, + { + "type": "string", + "enum": [ + "asia\/damascus" + ], + "title": "asia\/damascus" + }, + { + "type": "string", + "enum": [ + "asia\/dhaka" + ], + "title": "asia\/dhaka" + }, + { + "type": "string", + "enum": [ + "asia\/dili" + ], + "title": "asia\/dili" + }, + { + "type": "string", + "enum": [ + "asia\/dubai" + ], + "title": "asia\/dubai" + }, + { + "type": "string", + "enum": [ + "asia\/dushanbe" + ], + "title": "asia\/dushanbe" + }, + { + "type": "string", + "enum": [ + "asia\/famagusta" + ], + "title": "asia\/famagusta" + }, + { + "type": "string", + "enum": [ + "asia\/gaza" + ], + "title": "asia\/gaza" + }, + { + "type": "string", + "enum": [ + "asia\/hebron" + ], + "title": "asia\/hebron" + }, + { + "type": "string", + "enum": [ + "asia\/ho_chi_minh" + ], + "title": "asia\/ho_chi_minh" + }, + { + "type": "string", + "enum": [ + "asia\/hong_kong" + ], + "title": "asia\/hong_kong" + }, + { + "type": "string", + "enum": [ + "asia\/hovd" + ], + "title": "asia\/hovd" + }, + { + "type": "string", + "enum": [ + "asia\/irkutsk" + ], + "title": "asia\/irkutsk" + }, + { + "type": "string", + "enum": [ + "asia\/jakarta" + ], + "title": "asia\/jakarta" + }, + { + "type": "string", + "enum": [ + "asia\/jayapura" + ], + "title": "asia\/jayapura" + }, + { + "type": "string", + "enum": [ + "asia\/jerusalem" + ], + "title": "asia\/jerusalem" + }, + { + "type": "string", + "enum": [ + "asia\/kabul" + ], + "title": "asia\/kabul" + }, + { + "type": "string", + "enum": [ + "asia\/kamchatka" + ], + "title": "asia\/kamchatka" + }, + { + "type": "string", + "enum": [ + "asia\/karachi" + ], + "title": "asia\/karachi" + }, + { + "type": "string", + "enum": [ + "asia\/kathmandu" + ], + "title": "asia\/kathmandu" + }, + { + "type": "string", + "enum": [ + "asia\/khandyga" + ], + "title": "asia\/khandyga" + }, + { + "type": "string", + "enum": [ + "asia\/kolkata" + ], + "title": "asia\/kolkata" + }, + { + "type": "string", + "enum": [ + "asia\/krasnoyarsk" + ], + "title": "asia\/krasnoyarsk" + }, + { + "type": "string", + "enum": [ + "asia\/kuala_lumpur" + ], + "title": "asia\/kuala_lumpur" + }, + { + "type": "string", + "enum": [ + "asia\/kuching" + ], + "title": "asia\/kuching" + }, + { + "type": "string", + "enum": [ + "asia\/kuwait" + ], + "title": "asia\/kuwait" + }, + { + "type": "string", + "enum": [ + "asia\/macau" + ], + "title": "asia\/macau" + }, + { + "type": "string", + "enum": [ + "asia\/magadan" + ], + "title": "asia\/magadan" + }, + { + "type": "string", + "enum": [ + "asia\/makassar" + ], + "title": "asia\/makassar" + }, + { + "type": "string", + "enum": [ + "asia\/manila" + ], + "title": "asia\/manila" + }, + { + "type": "string", + "enum": [ + "asia\/muscat" + ], + "title": "asia\/muscat" + }, + { + "type": "string", + "enum": [ + "asia\/nicosia" + ], + "title": "asia\/nicosia" + }, + { + "type": "string", + "enum": [ + "asia\/novokuznetsk" + ], + "title": "asia\/novokuznetsk" + }, + { + "type": "string", + "enum": [ + "asia\/novosibirsk" + ], + "title": "asia\/novosibirsk" + }, + { + "type": "string", + "enum": [ + "asia\/omsk" + ], + "title": "asia\/omsk" + }, + { + "type": "string", + "enum": [ + "asia\/oral" + ], + "title": "asia\/oral" + }, + { + "type": "string", + "enum": [ + "asia\/phnom_penh" + ], + "title": "asia\/phnom_penh" + }, + { + "type": "string", + "enum": [ + "asia\/pontianak" + ], + "title": "asia\/pontianak" + }, + { + "type": "string", + "enum": [ + "asia\/pyongyang" + ], + "title": "asia\/pyongyang" + }, + { + "type": "string", + "enum": [ + "asia\/qatar" + ], + "title": "asia\/qatar" + }, + { + "type": "string", + "enum": [ + "asia\/qostanay" + ], + "title": "asia\/qostanay" + }, + { + "type": "string", + "enum": [ + "asia\/qyzylorda" + ], + "title": "asia\/qyzylorda" + }, + { + "type": "string", + "enum": [ + "asia\/riyadh" + ], + "title": "asia\/riyadh" + }, + { + "type": "string", + "enum": [ + "asia\/sakhalin" + ], + "title": "asia\/sakhalin" + }, + { + "type": "string", + "enum": [ + "asia\/samarkand" + ], + "title": "asia\/samarkand" + }, + { + "type": "string", + "enum": [ + "asia\/seoul" + ], + "title": "asia\/seoul" + }, + { + "type": "string", + "enum": [ + "asia\/shanghai" + ], + "title": "asia\/shanghai" + }, + { + "type": "string", + "enum": [ + "asia\/singapore" + ], + "title": "asia\/singapore" + }, + { + "type": "string", + "enum": [ + "asia\/srednekolymsk" + ], + "title": "asia\/srednekolymsk" + }, + { + "type": "string", + "enum": [ + "asia\/taipei" + ], + "title": "asia\/taipei" + }, + { + "type": "string", + "enum": [ + "asia\/tashkent" + ], + "title": "asia\/tashkent" + }, + { + "type": "string", + "enum": [ + "asia\/tbilisi" + ], + "title": "asia\/tbilisi" + }, + { + "type": "string", + "enum": [ + "asia\/tehran" + ], + "title": "asia\/tehran" + }, + { + "type": "string", + "enum": [ + "asia\/thimphu" + ], + "title": "asia\/thimphu" + }, + { + "type": "string", + "enum": [ + "asia\/tokyo" + ], + "title": "asia\/tokyo" + }, + { + "type": "string", + "enum": [ + "asia\/tomsk" + ], + "title": "asia\/tomsk" + }, + { + "type": "string", + "enum": [ + "asia\/ulaanbaatar" + ], + "title": "asia\/ulaanbaatar" + }, + { + "type": "string", + "enum": [ + "asia\/urumqi" + ], + "title": "asia\/urumqi" + }, + { + "type": "string", + "enum": [ + "asia\/ust-nera" + ], + "title": "asia\/ust-nera" + }, + { + "type": "string", + "enum": [ + "asia\/vientiane" + ], + "title": "asia\/vientiane" + }, + { + "type": "string", + "enum": [ + "asia\/vladivostok" + ], + "title": "asia\/vladivostok" + }, + { + "type": "string", + "enum": [ + "asia\/yakutsk" + ], + "title": "asia\/yakutsk" + }, + { + "type": "string", + "enum": [ + "asia\/yangon" + ], + "title": "asia\/yangon" + }, + { + "type": "string", + "enum": [ + "asia\/yekaterinburg" + ], + "title": "asia\/yekaterinburg" + }, + { + "type": "string", + "enum": [ + "asia\/yerevan" + ], + "title": "asia\/yerevan" + }, + { + "type": "string", + "enum": [ + "atlantic\/azores" + ], + "title": "atlantic\/azores" + }, + { + "type": "string", + "enum": [ + "atlantic\/bermuda" + ], + "title": "atlantic\/bermuda" + }, + { + "type": "string", + "enum": [ + "atlantic\/canary" + ], + "title": "atlantic\/canary" + }, + { + "type": "string", + "enum": [ + "atlantic\/cape_verde" + ], + "title": "atlantic\/cape_verde" + }, + { + "type": "string", + "enum": [ + "atlantic\/faroe" + ], + "title": "atlantic\/faroe" + }, + { + "type": "string", + "enum": [ + "atlantic\/madeira" + ], + "title": "atlantic\/madeira" + }, + { + "type": "string", + "enum": [ + "atlantic\/reykjavik" + ], + "title": "atlantic\/reykjavik" + }, + { + "type": "string", + "enum": [ + "atlantic\/south_georgia" + ], + "title": "atlantic\/south_georgia" + }, + { + "type": "string", + "enum": [ + "atlantic\/st_helena" + ], + "title": "atlantic\/st_helena" + }, + { + "type": "string", + "enum": [ + "atlantic\/stanley" + ], + "title": "atlantic\/stanley" + }, + { + "type": "string", + "enum": [ + "australia\/adelaide" + ], + "title": "australia\/adelaide" + }, + { + "type": "string", + "enum": [ + "australia\/brisbane" + ], + "title": "australia\/brisbane" + }, + { + "type": "string", + "enum": [ + "australia\/broken_hill" + ], + "title": "australia\/broken_hill" + }, + { + "type": "string", + "enum": [ + "australia\/darwin" + ], + "title": "australia\/darwin" + }, + { + "type": "string", + "enum": [ + "australia\/eucla" + ], + "title": "australia\/eucla" + }, + { + "type": "string", + "enum": [ + "australia\/hobart" + ], + "title": "australia\/hobart" + }, + { + "type": "string", + "enum": [ + "australia\/lindeman" + ], + "title": "australia\/lindeman" + }, + { + "type": "string", + "enum": [ + "australia\/lord_howe" + ], + "title": "australia\/lord_howe" + }, + { + "type": "string", + "enum": [ + "australia\/melbourne" + ], + "title": "australia\/melbourne" + }, + { + "type": "string", + "enum": [ + "australia\/perth" + ], + "title": "australia\/perth" + }, + { + "type": "string", + "enum": [ + "australia\/sydney" + ], + "title": "australia\/sydney" + }, + { + "type": "string", + "enum": [ + "europe\/amsterdam" + ], + "title": "europe\/amsterdam" + }, + { + "type": "string", + "enum": [ + "europe\/andorra" + ], + "title": "europe\/andorra" + }, + { + "type": "string", + "enum": [ + "europe\/astrakhan" + ], + "title": "europe\/astrakhan" + }, + { + "type": "string", + "enum": [ + "europe\/athens" + ], + "title": "europe\/athens" + }, + { + "type": "string", + "enum": [ + "europe\/belgrade" + ], + "title": "europe\/belgrade" + }, + { + "type": "string", + "enum": [ + "europe\/berlin" + ], + "title": "europe\/berlin" + }, + { + "type": "string", + "enum": [ + "europe\/bratislava" + ], + "title": "europe\/bratislava" + }, + { + "type": "string", + "enum": [ + "europe\/brussels" + ], + "title": "europe\/brussels" + }, + { + "type": "string", + "enum": [ + "europe\/bucharest" + ], + "title": "europe\/bucharest" + }, + { + "type": "string", + "enum": [ + "europe\/budapest" + ], + "title": "europe\/budapest" + }, + { + "type": "string", + "enum": [ + "europe\/busingen" + ], + "title": "europe\/busingen" + }, + { + "type": "string", + "enum": [ + "europe\/chisinau" + ], + "title": "europe\/chisinau" + }, + { + "type": "string", + "enum": [ + "europe\/copenhagen" + ], + "title": "europe\/copenhagen" + }, + { + "type": "string", + "enum": [ + "europe\/dublin" + ], + "title": "europe\/dublin" + }, + { + "type": "string", + "enum": [ + "europe\/gibraltar" + ], + "title": "europe\/gibraltar" + }, + { + "type": "string", + "enum": [ + "europe\/guernsey" + ], + "title": "europe\/guernsey" + }, + { + "type": "string", + "enum": [ + "europe\/helsinki" + ], + "title": "europe\/helsinki" + }, + { + "type": "string", + "enum": [ + "europe\/isle_of_man" + ], + "title": "europe\/isle_of_man" + }, + { + "type": "string", + "enum": [ + "europe\/istanbul" + ], + "title": "europe\/istanbul" + }, + { + "type": "string", + "enum": [ + "europe\/jersey" + ], + "title": "europe\/jersey" + }, + { + "type": "string", + "enum": [ + "europe\/kaliningrad" + ], + "title": "europe\/kaliningrad" + }, + { + "type": "string", + "enum": [ + "europe\/kirov" + ], + "title": "europe\/kirov" + }, + { + "type": "string", + "enum": [ + "europe\/kyiv" + ], + "title": "europe\/kyiv" + }, + { + "type": "string", + "enum": [ + "europe\/lisbon" + ], + "title": "europe\/lisbon" + }, + { + "type": "string", + "enum": [ + "europe\/ljubljana" + ], + "title": "europe\/ljubljana" + }, + { + "type": "string", + "enum": [ + "europe\/london" + ], + "title": "europe\/london" + }, + { + "type": "string", + "enum": [ + "europe\/luxembourg" + ], + "title": "europe\/luxembourg" + }, + { + "type": "string", + "enum": [ + "europe\/madrid" + ], + "title": "europe\/madrid" + }, + { + "type": "string", + "enum": [ + "europe\/malta" + ], + "title": "europe\/malta" + }, + { + "type": "string", + "enum": [ + "europe\/mariehamn" + ], + "title": "europe\/mariehamn" + }, + { + "type": "string", + "enum": [ + "europe\/minsk" + ], + "title": "europe\/minsk" + }, + { + "type": "string", + "enum": [ + "europe\/monaco" + ], + "title": "europe\/monaco" + }, + { + "type": "string", + "enum": [ + "europe\/moscow" + ], + "title": "europe\/moscow" + }, + { + "type": "string", + "enum": [ + "europe\/oslo" + ], + "title": "europe\/oslo" + }, + { + "type": "string", + "enum": [ + "europe\/paris" + ], + "title": "europe\/paris" + }, + { + "type": "string", + "enum": [ + "europe\/podgorica" + ], + "title": "europe\/podgorica" + }, + { + "type": "string", + "enum": [ + "europe\/prague" + ], + "title": "europe\/prague" + }, + { + "type": "string", + "enum": [ + "europe\/riga" + ], + "title": "europe\/riga" + }, + { + "type": "string", + "enum": [ + "europe\/rome" + ], + "title": "europe\/rome" + }, + { + "type": "string", + "enum": [ + "europe\/samara" + ], + "title": "europe\/samara" + }, + { + "type": "string", + "enum": [ + "europe\/san_marino" + ], + "title": "europe\/san_marino" + }, + { + "type": "string", + "enum": [ + "europe\/sarajevo" + ], + "title": "europe\/sarajevo" + }, + { + "type": "string", + "enum": [ + "europe\/saratov" + ], + "title": "europe\/saratov" + }, + { + "type": "string", + "enum": [ + "europe\/simferopol" + ], + "title": "europe\/simferopol" + }, + { + "type": "string", + "enum": [ + "europe\/skopje" + ], + "title": "europe\/skopje" + }, + { + "type": "string", + "enum": [ + "europe\/sofia" + ], + "title": "europe\/sofia" + }, + { + "type": "string", + "enum": [ + "europe\/stockholm" + ], + "title": "europe\/stockholm" + }, + { + "type": "string", + "enum": [ + "europe\/tallinn" + ], + "title": "europe\/tallinn" + }, + { + "type": "string", + "enum": [ + "europe\/tirane" + ], + "title": "europe\/tirane" + }, + { + "type": "string", + "enum": [ + "europe\/ulyanovsk" + ], + "title": "europe\/ulyanovsk" + }, + { + "type": "string", + "enum": [ + "europe\/vaduz" + ], + "title": "europe\/vaduz" + }, + { + "type": "string", + "enum": [ + "europe\/vatican" + ], + "title": "europe\/vatican" + }, + { + "type": "string", + "enum": [ + "europe\/vienna" + ], + "title": "europe\/vienna" + }, + { + "type": "string", + "enum": [ + "europe\/vilnius" + ], + "title": "europe\/vilnius" + }, + { + "type": "string", + "enum": [ + "europe\/volgograd" + ], + "title": "europe\/volgograd" + }, + { + "type": "string", + "enum": [ + "europe\/warsaw" + ], + "title": "europe\/warsaw" + }, + { + "type": "string", + "enum": [ + "europe\/zagreb" + ], + "title": "europe\/zagreb" + }, + { + "type": "string", + "enum": [ + "europe\/zurich" + ], + "title": "europe\/zurich" + }, + { + "type": "string", + "enum": [ + "indian\/antananarivo" + ], + "title": "indian\/antananarivo" + }, + { + "type": "string", + "enum": [ + "indian\/chagos" + ], + "title": "indian\/chagos" + }, + { + "type": "string", + "enum": [ + "indian\/christmas" + ], + "title": "indian\/christmas" + }, + { + "type": "string", + "enum": [ + "indian\/cocos" + ], + "title": "indian\/cocos" + }, + { + "type": "string", + "enum": [ + "indian\/comoro" + ], + "title": "indian\/comoro" + }, + { + "type": "string", + "enum": [ + "indian\/kerguelen" + ], + "title": "indian\/kerguelen" + }, + { + "type": "string", + "enum": [ + "indian\/mahe" + ], + "title": "indian\/mahe" + }, + { + "type": "string", + "enum": [ + "indian\/maldives" + ], + "title": "indian\/maldives" + }, + { + "type": "string", + "enum": [ + "indian\/mauritius" + ], + "title": "indian\/mauritius" + }, + { + "type": "string", + "enum": [ + "indian\/mayotte" + ], + "title": "indian\/mayotte" + }, + { + "type": "string", + "enum": [ + "indian\/reunion" + ], + "title": "indian\/reunion" + }, + { + "type": "string", + "enum": [ + "pacific\/apia" + ], + "title": "pacific\/apia" + }, + { + "type": "string", + "enum": [ + "pacific\/auckland" + ], + "title": "pacific\/auckland" + }, + { + "type": "string", + "enum": [ + "pacific\/bougainville" + ], + "title": "pacific\/bougainville" + }, + { + "type": "string", + "enum": [ + "pacific\/chatham" + ], + "title": "pacific\/chatham" + }, + { + "type": "string", + "enum": [ + "pacific\/chuuk" + ], + "title": "pacific\/chuuk" + }, + { + "type": "string", + "enum": [ + "pacific\/easter" + ], + "title": "pacific\/easter" + }, + { + "type": "string", + "enum": [ + "pacific\/efate" + ], + "title": "pacific\/efate" + }, + { + "type": "string", + "enum": [ + "pacific\/fakaofo" + ], + "title": "pacific\/fakaofo" + }, + { + "type": "string", + "enum": [ + "pacific\/fiji" + ], + "title": "pacific\/fiji" + }, + { + "type": "string", + "enum": [ + "pacific\/funafuti" + ], + "title": "pacific\/funafuti" + }, + { + "type": "string", + "enum": [ + "pacific\/galapagos" + ], + "title": "pacific\/galapagos" + }, + { + "type": "string", + "enum": [ + "pacific\/gambier" + ], + "title": "pacific\/gambier" + }, + { + "type": "string", + "enum": [ + "pacific\/guadalcanal" + ], + "title": "pacific\/guadalcanal" + }, + { + "type": "string", + "enum": [ + "pacific\/guam" + ], + "title": "pacific\/guam" + }, + { + "type": "string", + "enum": [ + "pacific\/honolulu" + ], + "title": "pacific\/honolulu" + }, + { + "type": "string", + "enum": [ + "pacific\/kanton" + ], + "title": "pacific\/kanton" + }, + { + "type": "string", + "enum": [ + "pacific\/kiritimati" + ], + "title": "pacific\/kiritimati" + }, + { + "type": "string", + "enum": [ + "pacific\/kosrae" + ], + "title": "pacific\/kosrae" + }, + { + "type": "string", + "enum": [ + "pacific\/kwajalein" + ], + "title": "pacific\/kwajalein" + }, + { + "type": "string", + "enum": [ + "pacific\/majuro" + ], + "title": "pacific\/majuro" + }, + { + "type": "string", + "enum": [ + "pacific\/marquesas" + ], + "title": "pacific\/marquesas" + }, + { + "type": "string", + "enum": [ + "pacific\/midway" + ], + "title": "pacific\/midway" + }, + { + "type": "string", + "enum": [ + "pacific\/nauru" + ], + "title": "pacific\/nauru" + }, + { + "type": "string", + "enum": [ + "pacific\/niue" + ], + "title": "pacific\/niue" + }, + { + "type": "string", + "enum": [ + "pacific\/norfolk" + ], + "title": "pacific\/norfolk" + }, + { + "type": "string", + "enum": [ + "pacific\/noumea" + ], + "title": "pacific\/noumea" + }, + { + "type": "string", + "enum": [ + "pacific\/pago_pago" + ], + "title": "pacific\/pago_pago" + }, + { + "type": "string", + "enum": [ + "pacific\/palau" + ], + "title": "pacific\/palau" + }, + { + "type": "string", + "enum": [ + "pacific\/pitcairn" + ], + "title": "pacific\/pitcairn" + }, + { + "type": "string", + "enum": [ + "pacific\/pohnpei" + ], + "title": "pacific\/pohnpei" + }, + { + "type": "string", + "enum": [ + "pacific\/port_moresby" + ], + "title": "pacific\/port_moresby" + }, + { + "type": "string", + "enum": [ + "pacific\/rarotonga" + ], + "title": "pacific\/rarotonga" + }, + { + "type": "string", + "enum": [ + "pacific\/saipan" + ], + "title": "pacific\/saipan" + }, + { + "type": "string", + "enum": [ + "pacific\/tahiti" + ], + "title": "pacific\/tahiti" + }, + { + "type": "string", + "enum": [ + "pacific\/tarawa" + ], + "title": "pacific\/tarawa" + }, + { + "type": "string", + "enum": [ + "pacific\/tongatapu" + ], + "title": "pacific\/tongatapu" + }, + { + "type": "string", + "enum": [ + "pacific\/wake" + ], + "title": "pacific\/wake" + }, + { + "type": "string", + "enum": [ + "pacific\/wallis" + ], + "title": "pacific\/wallis" + }, + { + "type": "string", + "enum": [ + "utc" + ], + "title": "utc" + } + ] + }, + "in": "query" + }, + { + "name": "latitude", + "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 37.7749, + "default": 0 + }, + "in": "query" + }, + { + "name": "longitude", + "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": -122.4194, + "default": 0 + }, + "in": "query" + }, + { + "name": "accuracy", + "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 100, + "default": 0 + }, + "in": "query" + }, + { + "name": "touch", + "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "permissions", + "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "BrowserPermission", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "geolocation" + ], + "title": "geolocation" + }, + { + "type": "string", + "enum": [ + "camera" + ], + "title": "camera" + }, + { + "type": "string", + "enum": [ + "microphone" + ], + "title": "microphone" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "midi" + ], + "title": "midi" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + }, + { + "type": "string", + "enum": [ + "clipboard-read" + ], + "title": "clipboard-read" + }, + { + "type": "string", + "enum": [ + "clipboard-write" + ], + "title": "clipboard-write" + }, + { + "type": "string", + "enum": [ + "payment-handler" + ], + "title": "payment-handler" + }, + { + "type": "string", + "enum": [ + "usb" + ], + "title": "usb" + }, + { + "type": "string", + "enum": [ + "bluetooth" + ], + "title": "bluetooth" + }, + { + "type": "string", + "enum": [ + "accelerometer" + ], + "title": "accelerometer" + }, + { + "type": "string", + "enum": [ + "gyroscope" + ], + "title": "gyroscope" + }, + { + "type": "string", + "enum": [ + "magnetometer" + ], + "title": "magnetometer" + }, + { + "type": "string", + "enum": [ + "ambient-light-sensor" + ], + "title": "ambient-light-sensor" + }, + { + "type": "string", + "enum": [ + "background-sync" + ], + "title": "background-sync" + }, + { + "type": "string", + "enum": [ + "persistent-storage" + ], + "title": "persistent-storage" + }, + { + "type": "string", + "enum": [ + "screen-wake-lock" + ], + "title": "screen-wake-lock" + }, + { + "type": "string", + "enum": [ + "web-share" + ], + "title": "web-share" + }, + { + "type": "string", + "enum": [ + "xr-spatial-tracking" + ], + "title": "xr-spatial-tracking" + } + ] + }, + "example": [ + "geolocation", + "notifications" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "sleep", + "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 3, + "default": 0 + }, + "in": "query" + }, + { + "name": "width", + "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 800, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 600, + "default": 0 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 85, + "default": -1 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpeg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", + "tags": [ + "databases" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", + "tags": [ + "databases" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", + "tags": [ + "databases" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", + "tags": [ + "databases" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", + "tags": [ + "databases" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "databasesCreateOperations", + "tags": [ + "databases" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "databasesListDocuments", + "tags": [ + "databases" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "databasesCreateDocument", + "tags": [ + "databases" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, + "methods": [ + { + "name": "createDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "databasesGetDocument", + "tags": [ + "databases" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "databasesUpsertDocument", + "tags": [ + "databases" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, + "methods": [ + { + "name": "upsertDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/upsert-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "databasesUpdateDocument", + "tags": [ + "databases" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "databasesDeleteDocument", + "tags": [ + "databases" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "databasesDecrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Decrement a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "databasesIncrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Increment a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "documentsDBListTransactions", + "tags": [ + "documentsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", + "tags": [ + "documentsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "tags": [ + "documentsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", + "tags": [ + "documentsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "tags": [ + "documentsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", + "tags": [ + "documentsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "tags": [ + "documentsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "tags": [ + "documentsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", + "tags": [ + "documentsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to decrement the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions": { + "get": { + "summary": "List executions", + "operationId": "functionsListExecutions", + "tags": [ + "functions" + ], + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/list-executions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "tags": [ + "functions" + ], + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", + "responses": { + "201": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "description": "HTTP body of execution. Default value is empty string.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "async": { + "description": "Execute code in the background. Default value is false.", + "type": "boolean", + "default": false, + "example": false + }, + "path": { + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "type": "string", + "default": "\/", + "example": "<PATH>" + }, + "method": { + "description": "HTTP method of execution. Default value is POST.", + "type": "string", + "default": "POST", + "example": "GET", + "title": "ExecutionMethod", + "oneOf": [ + { + "type": "string", + "enum": [ + "GET" + ], + "title": "GET" + }, + { + "type": "string", + "enum": [ + "POST" + ], + "title": "POST" + }, + { + "type": "string", + "enum": [ + "PUT" + ], + "title": "PUT" + }, + { + "type": "string", + "enum": [ + "PATCH" + ], + "title": "PATCH" + }, + { + "type": "string", + "enum": [ + "DELETE" + ], + "title": "DELETE" + }, + { + "type": "string", + "enum": [ + "OPTIONS" + ], + "title": "OPTIONS" + }, + { + "type": "string", + "enum": [ + "HEAD" + ], + "title": "HEAD" + } + ] + }, + "headers": { + "description": "HTTP headers of execution. Defaults to empty.", + "type": "object", + "default": {}, + "example": {} + }, + "scheduledAt": { + "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", + "type": "string", + "example": "<SCHEDULED_AT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions\/{executionId}": { + "get": { + "summary": "Get execution", + "operationId": "functionsGetExecution", + "tags": [ + "functions" + ], + "description": "Get a function execution log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "query { localeGet { ip } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "tags": [ + "locale" + ], + "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "responses": { + "200": { + "description": "Locale", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/locale" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "tags": [ + "locale" + ], + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "responses": { + "200": { + "description": "Locale codes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/localeCodeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "tags": [ + "locale" + ], + "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Continents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/continentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "tags": [ + "locale" + ], + "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "tags": [ + "locale" + ], + "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-eu.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "tags": [ + "locale" + ], + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Phones List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/phoneList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "tags": [ + "locale" + ], + "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Currencies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/currencyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "tags": [ + "locale" + ], + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "responses": { + "200": { + "description": "Languages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/languageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers": { + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", + "tags": [ + "messaging" + ], + "description": "Create a new subscriber.", + "responses": { + "201": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/create-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "targetId": { + "description": "Target ID. The target ID to link to the specified Topic ID.", + "type": "string", + "example": "<TARGET_ID>" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", + "tags": [ + "messaging" + ], + "description": "Delete a subscriber by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/delete-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/oauth2\/{project_id}\/approve": { + "post": { + "summary": "Approve OAuth2", + "operationId": "oauth2Approve", + "tags": [ + "oauth2" + ], + "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Approve", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Approve" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/approve.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + }, + "authorization_details": { + "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "scope": { + "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", + "type": "string", + "default": "", + "example": "<SCOPE>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/authorize": { + "get": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2Authorize", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "redirect_uri", + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "response_type", + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "scope", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "required": false, + "schema": { + "type": "string", + "example": "<SCOPE>", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "nonce", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "required": false, + "schema": { + "type": "string", + "example": "<NONCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "<CODE_CHALLENGE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge_method", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "s256", + "default": "" + }, + "in": "query" + }, + { + "name": "prompt", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "required": false, + "schema": { + "type": "string", + "example": "<PROMPT>", + "default": "" + }, + "in": "query" + }, + { + "name": "max_age", + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "in": "query" + }, + { + "name": "authorization_details", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "required": false, + "schema": { + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "default": "" + }, + "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "audience", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "required": false, + "schema": { + "type": "string", + "example": "<AUDIENCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "request_uri", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "required": false, + "schema": { + "type": "string", + "example": "<REQUEST_URI>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizePost", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "type": "string", + "default": "", + "example": "" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + }, + "request_uri": { + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "type": "string", + "default": "", + "example": "<REQUEST_URI>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/device_authorization": { + "post": { + "summary": "OAuth2 Device Authorization", + "operationId": "oauth2CreateDeviceAuthorization", + "tags": [ + "oauth2" + ], + "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", + "responses": { + "200": { + "description": "OAuth2 Device Authorization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-device-authorization.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants": { + "post": { + "summary": "Create OAuth2 Grant", + "operationId": "oauth2CreateGrant", + "tags": [ + "oauth2" + ], + "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", + "responses": { + "201": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/create-grant.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "user_code": { + "description": "User code displayed on the device.", + "type": "string", + "example": "<USER_CODE>" + } + }, + "required": [ + "user_code" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants\/{grant_id}": { + "get": { + "summary": "Get OAuth2 Grant", + "operationId": "oauth2GetGrant", + "tags": [ + "oauth2" + ], + "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", + "responses": { + "200": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/get-grant.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client that created grant during authorization exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "grant_id", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "required": true, + "schema": { + "type": "string", + "example": "<GRANT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/oauth2\/{project_id}\/logout": { + "get": { + "summary": "OAuth2 Logout", + "operationId": "oauth2Logout", + "tags": [ + "oauth2" + ], + "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "id_token_hint", + "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", + "required": false, + "schema": { + "type": "string", + "example": "<ID_TOKEN_HINT>", + "default": "" + }, + "in": "query" + }, + { + "name": "logout_hint", + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "required": false, + "schema": { + "type": "string", + "example": "<LOGOUT_HINT>", + "default": "" + }, + "in": "query" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "post_logout_redirect_uri", + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "ui_locales", + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "required": false, + "schema": { + "type": "string", + "example": "<UI_LOCALES>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Logout", + "operationId": "oauth2LogoutPost", + "tags": [ + "oauth2" + ], + "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "id_token_hint": { + "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", + "type": "string", + "default": "", + "example": "<ID_TOKEN_HINT>" + }, + "logout_hint": { + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "type": "string", + "default": "", + "example": "<LOGOUT_HINT>" + }, + "client_id": { + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "post_logout_redirect_uri": { + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "state": { + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "ui_locales": { + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "type": "string", + "default": "", + "example": "<UI_LOCALES>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/organizations": { + "get": { + "summary": "OAuth2 List Accessible Organizations", + "operationId": "oauth2ListOrganizations", + "tags": [ + "oauth2" + ], + "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible organizations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2OrganizationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-organizations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.organizations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of organizations to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of organizations to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/par": { + "post": { + "summary": "OAuth2 PAR", + "operationId": "oauth2CreatePAR", + "tags": [ + "oauth2" + ], + "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", + "responses": { + "201": { + "description": "OAuth2 PAR", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2PAR" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-par.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type.", + "type": "string", + "example": "code" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age parameter for customization of consent screen.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "client_id", + "redirect_uri", + "response_type" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/projects": { + "get": { + "summary": "OAuth2 List Accessible Projects", + "operationId": "oauth2ListProjects", + "tags": [ + "oauth2" + ], + "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible projects list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ProjectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-projects.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.projects.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of projects to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of projects to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/reject": { + "post": { + "summary": "Reject OAuth2", + "operationId": "oauth2Reject", + "tags": [ + "oauth2" + ], + "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Reject", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Reject" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/reject.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/revoke": { + "post": { + "summary": "OAuth2 Revoke", + "operationId": "oauth2Revoke", + "tags": [ + "oauth2" + ], + "description": "Revoke an OAuth2 access token or refresh token.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/revoke.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access or refresh token to revoke.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to revoke (access_token or refresh_token).", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/token": { + "post": { + "summary": "OAuth2 Token", + "operationId": "oauth2CreateToken", + "tags": [ + "oauth2" + ], + "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", + "responses": { + "200": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/create-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_type": { + "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", + "type": "string", + "example": "<GRANT_TYPE>" + }, + "code": { + "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "<CODE>" + }, + "refresh_token": { + "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", + "type": "string", + "default": "", + "example": "<REFRESH_TOKEN>" + }, + "device_code": { + "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", + "type": "string", + "default": "", + "example": "<DEVICE_CODE>" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + }, + "code_verifier": { + "description": "PKCE code verifier. Required for public apps.", + "type": "string", + "default": "", + "example": "<CODE_VERIFIER>" + }, + "redirect_uri": { + "description": "Redirect URI. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "grant_type" + ] + }, + "examples": { + "authorizationCode": { + "summary": "Exchange an authorization code", + "value": { + "grant_type": "authorization_code", + "code": "<CODE>", + "redirect_uri": "https:\/\/example.com\/callback", + "client_id": "<CLIENT_ID>", + "code_verifier": "<CODE_VERIFIER>" + } + }, + "refreshToken": { + "summary": "Refresh an access token", + "value": { + "grant_type": "refresh_token", + "refresh_token": "<REFRESH_TOKEN>", + "client_id": "<CLIENT_ID>" + } + }, + "deviceCode": { + "summary": "Exchange a device code", + "value": { + "grant_type": "urn:ietf:params:oauth:grant-type:device_code", + "device_code": "<DEVICE_CODE>", + "client_id": "<CLIENT_ID>" + } + } + } + } + } + } + } + }, + "\/organization\/installations": { + "get": { + "summary": "List Installations", + "operationId": "organizationListInstallations", + "tags": [ + "organization" + ], + "description": "List app installations on the organization. Any organization member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "organizationCreateInstallation", + "tags": [ + "organization" + ], + "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/organization\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "organizationGetInstallation", + "tags": [ + "organization" + ], + "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "organizationUpdateInstallation", + "tags": [ + "organization" + ], + "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "organizationDeleteInstallation", + "tags": [ + "organization" + ], + "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/ping": { + "get": { + "summary": "Test the connection between the Appwrite and the SDK.", + "operationId": "pingGet", + "tags": [ + "ping" + ], + "description": "Send a ping to project as part of onboarding.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "ping\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ] + } + }, + "\/presences": { + "get": { + "summary": "List presences", + "operationId": "presencesList", + "tags": [ + "presences" + ], + "description": "List presence logs. Expired entries are filtered out automatically.\n", + "responses": { + "200": { + "description": "Presences List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presenceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/presences\/{presenceId}": { + "get": { + "summary": "Get presence", + "operationId": "presencesGet", + "tags": [ + "presences" + ], + "description": "Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", + "tags": [ + "presences" + ], + "description": "Create or update a presence log by its user ID.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/upsert.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "platforms": [ + "client", + "console" + ], + "summary": "Upsert presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "status", + "permissions", + "expiresAt", + "metadata" + ], + "required": [ + "presenceId", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/presence" + } + ], + "description": "Create or update a presence log by its user ID.\n", + "demo": "presences\/upsert.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "status" + ] + } + } + } + } + }, + "patch": { + "summary": "Update presence", + "operationId": "presencesUpdate", + "tags": [ + "presences" + ], + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "update", + "namespace": "presences", + "platforms": [ + "client", + "console" + ], + "summary": "Update presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "status", + "expiresAt", + "metadata", + "permissions", + "purge" + ], + "required": [ + "presenceId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/presence" + } + ], + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "demo": "presences\/update.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "purge": { + "description": "When true, purge cached responses used by list presences endpoint.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", + "tags": [ + "presences" + ], + "description": "Delete a presence log by its unique ID.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "tags": [ + "storage" + ], + "description": "Get a list of all the user files. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Files List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/fileList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/list-files.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "fileId": { + "description": "File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<FILE_ID>" + }, + "file": { + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "type": "string", + "format": "binary" + }, + "permissions": { + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "folder": { + "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", + "type": "string", + "default": "", + "example": "photos\/2026" + } + }, + "required": [ + "fileId", + "file" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "File name.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", + "tags": [ + "storage" + ], + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "tags": [ + "storage" + ], + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "example": "auto", + "title": "ImageGravity", + "oneOf": [ + { + "type": "string", + "enum": [ + "auto" + ], + "title": "auto" + }, + { + "type": "string", + "enum": [ + "center" + ], + "title": "center" + }, + { + "type": "string", + "enum": [ + "top-left" + ], + "title": "top-left" + }, + { + "type": "string", + "enum": [ + "top" + ], + "title": "top" + }, + { + "type": "string", + "enum": [ + "top-right" + ], + "title": "top-right" + }, + { + "type": "string", + "enum": [ + "left" + ], + "title": "left" + }, + { + "type": "string", + "enum": [ + "right" + ], + "title": "right" + }, + { + "type": "string", + "enum": [ + "bottom-left" + ], + "title": "bottom-left" + }, + { + "type": "string", + "enum": [ + "bottom" + ], + "title": "bottom" + }, + { + "type": "string", + "enum": [ + "bottom-right" + ], + "title": "bottom-right" + } + ], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -360, + "default": 0 + }, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", + "tags": [ + "tablesDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "tags": [ + "tablesDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", + "tags": [ + "tablesDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createRow": { + "summary": "Stage a row creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/list-rows.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, table, schema version (columns and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; row writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", + "tags": [ + "tablesDB" + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create row", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rowId": { + "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<ROW_ID>" + }, + "data": { + "description": "Row data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rows": { + "description": "Array of rows data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rowId", + "data" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "tags": [ + "tablesDB" + ], + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/get-row.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", + "tags": [ + "tablesDB" + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update row data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", + "tags": [ + "tablesDB" + ], + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update row data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", + "tags": [ + "tablesDB" + ], + "description": "Delete a row by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { + "patch": { + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "tags": [ + "teams" + ], + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "responses": { + "200": { + "description": "Teams List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/teamList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", + "tags": [ + "teams" + ], + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "responses": { + "201": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TEAM_ID>" + }, + "name": { + "description": "Team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "roles": { + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "default": [ + "owner" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "teamId", + "name" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", + "tags": [ + "teams" + ], + "description": "Get a team by its ID. All team members have read access for this resource.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", + "tags": [ + "teams" + ], + "description": "Update the team's name by its unique ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "teamsListInstallations", + "tags": [ + "teams" + ], + "description": "List app installations on a team. Any team member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "teamsCreateInstallation", + "tags": [ + "teams" + ], + "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "teamsGetInstallation", + "tags": [ + "teams" + ], + "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "teamsUpdateInstallation", + "tags": [ + "teams" + ], + "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "teamsDeleteInstallation", + "tags": [ + "teams" + ], + "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", + "tags": [ + "teams" + ], + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", + "tags": [ + "teams" + ], + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new team member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to a team.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + }, + "url": { + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new team member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "tags": [ + "teams" + ], + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", + "tags": [ + "teams" + ], + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "roles" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", + "tags": [ + "teams" + ], + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", + "tags": [ + "teams" + ], + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret key.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "tags": [ + "teams" + ], + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", + "tags": [ + "vectorsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorsDBCreateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/vectorsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorsDBGetTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "vectorsDBUpdateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "vectorsDBDeleteTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorsDBCreateOperations", + "tags": [ + "vectorsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation in a four-dimensional collection", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + ] + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "vectorsDBListDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "vectorsDBCreateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-document.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "key": "value" + } + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { + "post": { + "summary": "Create query", + "operationId": "vectorsDBCreateQuery", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-query.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID to read uncommitted changes within the transaction.", + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "total": { + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "type": "boolean", + "default": true, + "example": false + }, + "ttl": { + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorsDBGetDocument", + "tags": [ + "vectorsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorsDBUpsertDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update a document in a four-dimensional collection", + "value": { + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "vectorsDBUpdateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document metadata", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "vectorsDBDeleteDocument", + "tags": [ + "vectorsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + } + }, + "tags": [ + { + "name": "ping", + "description": "" + }, + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "name": "avatars", + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." + }, + { + "name": "databases", + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" + }, + { + "name": "tablesDB", + "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" + }, + { + "name": "documentsDB", + "description": "" + }, + { + "name": "vectorsDB", + "description": "" + }, + { + "name": "presences", + "description": "The Presences service allows you to track and manage real-time user presence in your project." + }, + { + "name": "functions", + "description": "The Functions Service allows you view, create and manage your Cloud Functions." + }, + { + "name": "teams", + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" + }, + { + "name": "storage", + "description": "The Storage service allows you to manage your project files." + }, + { + "name": "apps", + "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." + }, + { + "name": "oauth2", + "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." + }, + { + "name": "organization", + "description": "The Organization service allows you to manage organization-level projects." + }, + { + "name": "graphql", + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." + }, + { + "name": "messaging", + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." + }, + { + "name": "analytics", + "description": "" + }, + { + "name": "projects", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "project", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "users", + "description": "The Users service allows you to manage your project users." + }, + { + "name": "sites", + "description": "The Sites Service allows you view, create and manage your web applications." + }, + { + "name": "proxy", + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." + }, + { + "name": "console", + "description": "The Console service allows you to interact with console relevant information." + }, + { + "name": "migrations", + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." + } + ], + "components": { + "schemas": { + "any": { + "description": "Any", + "type": "object", + "additionalProperties": true, + "example": {} + }, + "rowList": { + "description": "Rows List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rows that matched your query.", + "format": "int32", + "example": 5 + }, + "rows": { + "type": "array", + "description": "List of rows.", + "items": { + "$ref": "#\/components\/schemas\/row" + }, + "example": [] + } + }, + "required": [ + "total", + "rows" + ], + "example": { + "total": 5, + "rows": "" + } + }, + "documentList": { + "description": "Documents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of documents that matched your query.", + "format": "int32", + "example": 5 + }, + "documents": { + "type": "array", + "description": "List of documents.", + "items": { + "$ref": "#\/components\/schemas\/document" + }, + "example": [] + } + }, + "required": [ + "total", + "documents" + ], + "example": { + "total": 5, + "documents": "" + } + }, + "presenceList": { + "description": "Presences List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of presences that matched your query.", + "format": "int32", + "example": 5 + }, + "presences": { + "type": "array", + "description": "List of presences.", + "items": { + "$ref": "#\/components\/schemas\/presence" + }, + "example": [] + } + }, + "required": [ + "total", + "presences" + ], + "example": { + "total": 5, + "presences": "" + } + }, + "sessionList": { + "description": "Sessions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sessions that matched your query.", + "format": "int32", + "example": 5 + }, + "sessions": { + "type": "array", + "description": "List of sessions.", + "items": { + "$ref": "#\/components\/schemas\/session" + }, + "example": [] + } + }, + "required": [ + "total", + "sessions" + ], + "example": { + "total": 5, + "sessions": "" + } + }, + "identityList": { + "description": "Identities List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of identities that matched your query.", + "format": "int32", + "example": 5 + }, + "identities": { + "type": "array", + "description": "List of identities.", + "items": { + "$ref": "#\/components\/schemas\/identity" + }, + "example": [] + } + }, + "required": [ + "total", + "identities" + ], + "example": { + "total": 5, + "identities": "" + } + }, + "fileList": { + "description": "Files List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of files that matched your query.", + "format": "int32", + "example": 5 + }, + "files": { + "type": "array", + "description": "List of files.", + "items": { + "$ref": "#\/components\/schemas\/file" + }, + "example": [] + } + }, + "required": [ + "total", + "files" + ], + "example": { + "total": 5, + "files": "" + } + }, + "teamList": { + "description": "Teams List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "format": "int32", + "example": 5 + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/team" + }, + "example": [] + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "membershipList": { + "description": "Memberships List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of memberships that matched your query.", + "format": "int32", + "example": 5 + }, + "memberships": { + "type": "array", + "description": "List of memberships.", + "items": { + "$ref": "#\/components\/schemas\/membership" + }, + "example": [] + } + }, + "required": [ + "total", + "memberships" + ], + "example": { + "total": 5, + "memberships": "" + } + }, + "executionList": { + "description": "Executions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of executions that matched your query.", + "format": "int32", + "example": 5 + }, + "executions": { + "type": "array", + "description": "List of executions.", + "items": { + "$ref": "#\/components\/schemas\/execution" + }, + "example": [] + } + }, + "required": [ + "total", + "executions" + ], + "example": { + "total": 5, + "executions": "" + } + }, + "countryList": { + "description": "Countries List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of countries that matched your query.", + "format": "int32", + "example": 5 + }, + "countries": { + "type": "array", + "description": "List of countries.", + "items": { + "$ref": "#\/components\/schemas\/country" + }, + "example": [] + } + }, + "required": [ + "total", + "countries" + ], + "example": { + "total": 5, + "countries": "" + } + }, + "continentList": { + "description": "Continents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of continents that matched your query.", + "format": "int32", + "example": 5 + }, + "continents": { + "type": "array", + "description": "List of continents.", + "items": { + "$ref": "#\/components\/schemas\/continent" + }, + "example": [] + } + }, + "required": [ + "total", + "continents" + ], + "example": { + "total": 5, + "continents": "" + } + }, + "languageList": { + "description": "Languages List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of languages that matched your query.", + "format": "int32", + "example": 5 + }, + "languages": { + "type": "array", + "description": "List of languages.", + "items": { + "$ref": "#\/components\/schemas\/language" + }, + "example": [] + } + }, + "required": [ + "total", + "languages" + ], + "example": { + "total": 5, + "languages": "" + } + }, + "currencyList": { + "description": "Currencies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of currencies that matched your query.", + "format": "int32", + "example": 5 + }, + "currencies": { + "type": "array", + "description": "List of currencies.", + "items": { + "$ref": "#\/components\/schemas\/currency" + }, + "example": [] + } + }, + "required": [ + "total", + "currencies" + ], + "example": { + "total": 5, + "currencies": "" + } + }, + "phoneList": { + "description": "Phones List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of phones that matched your query.", + "format": "int32", + "example": 5 + }, + "phones": { + "type": "array", + "description": "List of phones.", + "items": { + "$ref": "#\/components\/schemas\/phone" + }, + "example": [] + } + }, + "required": [ + "total", + "phones" + ], + "example": { + "total": 5, + "phones": "" + } + }, + "localeCodeList": { + "description": "Locale codes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of localeCodes that matched your query.", + "format": "int32", + "example": 5 + }, + "localeCodes": { + "type": "array", + "description": "List of localeCodes.", + "items": { + "$ref": "#\/components\/schemas\/localeCode" + }, + "example": [] + } + }, + "required": [ + "total", + "localeCodes" + ], + "example": { + "total": 5, + "localeCodes": "" + } + }, + "transactionList": { + "description": "Transaction List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of transactions that matched your query.", + "format": "int32", + "example": 5 + }, + "transactions": { + "type": "array", + "description": "List of transactions.", + "items": { + "$ref": "#\/components\/schemas\/transaction" + }, + "example": [] + } + }, + "required": [ + "total", + "transactions" + ], + "example": { + "total": 5, + "transactions": "" + } + }, + "row": { + "description": "Row", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Row ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Row sequence ID.", + "readOnly": true, + "example": "1" + }, + "$tableId": { + "type": "string", + "description": "Table ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Row creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Row update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$tableId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$tableId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ] + } + }, + "document": { + "description": "Document", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Document ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Document sequence ID.", + "readOnly": true, + "example": "1" + }, + "$collectionId": { + "type": "string", + "description": "Collection ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Document creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Document update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$collectionId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$collectionId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "username": "john.doe", + "email": "john.doe@example.com", + "fullName": "John Doe", + "age": 30, + "isAdmin": false + } + }, + "presence": { + "description": "Presence", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Presence ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Presence creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Presence update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "674af8f3e12a5f9ac0be" + }, + "status": { + "type": "string", + "description": "Presence status.", + "example": "online", + "nullable": true + }, + "source": { + "type": "string", + "description": "Presence source.", + "example": "HTTP" + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "metadata": { + "type": "object", + "additionalProperties": true, + "description": "Presence metadata.", + "example": { + "key": "value" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "userId", + "source" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "userId": "674af8f3e12a5f9ac0be", + "status": "online", + "source": "HTTP", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "metadata": { + "key": "value" + } + } + }, + "user": { + "description": "User", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "password": { + "type": "string", + "description": "Hashed user password.", + "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "nullable": true + }, + "hash": { + "type": "string", + "description": "Password hashing algorithm.", + "example": "argon2", + "nullable": true + }, + "hashOptions": { + "type": "object", + "description": "Password hashing algorithm configuration.", + "example": {}, + "allOf": [ + { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/algoArgon2" + }, + { + "$ref": "#\/components\/schemas\/algoScrypt" + }, + { + "$ref": "#\/components\/schemas\/algoScryptModified" + }, + { + "$ref": "#\/components\/schemas\/algoBcrypt" + }, + { + "$ref": "#\/components\/schemas\/algoPhpass" + }, + { + "$ref": "#\/components\/schemas\/algoSha" + }, + { + "$ref": "#\/components\/schemas\/algoMd5" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "argon2": "#\/components\/schemas\/algoArgon2", + "scrypt": "#\/components\/schemas\/algoScrypt", + "scryptMod": "#\/components\/schemas\/algoScryptModified", + "bcrypt": "#\/components\/schemas\/algoBcrypt", + "phpass": "#\/components\/schemas\/algoPhpass", + "sha": "#\/components\/schemas\/algoSha", + "md5": "#\/components\/schemas\/algoMd5" + } + } + } + ], + "nullable": true + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "hash": "argon2", + "hashOptions": {}, + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "algoMd5": { + "description": "AlgoMD5", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "md5" + } + }, + "required": [ + "type" + ], + "example": { + "type": "md5" + } + }, + "algoSha": { + "description": "AlgoSHA", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "sha" + } + }, + "required": [ + "type" + ], + "example": { + "type": "sha" + } + }, + "algoPhpass": { + "description": "AlgoPHPass", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "phpass" + } + }, + "required": [ + "type" + ], + "example": { + "type": "phpass" + } + }, + "algoBcrypt": { + "description": "AlgoBcrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "bcrypt" + } + }, + "required": [ + "type" + ], + "example": { + "type": "bcrypt" + } + }, + "algoScrypt": { + "description": "AlgoScrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scrypt" + }, + "costCpu": { + "type": "integer", + "description": "CPU complexity of computed hash.", + "format": "int32", + "example": 8 + }, + "costMemory": { + "type": "integer", + "description": "Memory complexity of computed hash.", + "format": "int32", + "example": 14 + }, + "costParallel": { + "type": "integer", + "description": "Parallelization of computed hash.", + "format": "int32", + "example": 1 + }, + "length": { + "type": "integer", + "description": "Length used to compute hash.", + "format": "int32", + "example": 64 + } + }, + "required": [ + "type", + "costCpu", + "costMemory", + "costParallel", + "length" + ], + "example": { + "type": "scrypt", + "costCpu": 8, + "costMemory": 14, + "costParallel": 1, + "length": 64 + } + }, + "algoScryptModified": { + "description": "AlgoScryptModified", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scryptMod" + }, + "salt": { + "type": "string", + "description": "Salt used to compute hash.", + "example": "UxLMreBr6tYyjQ==" + }, + "saltSeparator": { + "type": "string", + "description": "Separator used to compute hash.", + "example": "Bw==" + }, + "signerKey": { + "type": "string", + "description": "Key used to compute hash.", + "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "required": [ + "type", + "salt", + "saltSeparator", + "signerKey" + ], + "example": { + "type": "scryptMod", + "salt": "UxLMreBr6tYyjQ==", + "saltSeparator": "Bw==", + "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "algoArgon2": { + "description": "AlgoArgon2", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "argon2" + }, + "memoryCost": { + "type": "integer", + "description": "Memory used to compute hash.", + "format": "int32", + "example": 65536 + }, + "timeCost": { + "type": "integer", + "description": "Amount of time consumed to compute hash", + "format": "int32", + "example": 4 + }, + "threads": { + "type": "integer", + "description": "Number of threads used to compute hash.", + "format": "int32", + "example": 3 + } + }, + "required": [ + "type", + "memoryCost", + "timeCost", + "threads" + ], + "example": { + "type": "argon2", + "memoryCost": 65536, + "timeCost": 4, + "threads": 3 + } + }, + "account": { + "description": "Account", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "preferences": { + "description": "Preferences", + "type": "object", + "additionalProperties": true, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + }, + "session": { + "description": "Session", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Session ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Session creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Session update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "expire": { + "type": "string", + "description": "Session expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "provider": { + "type": "string", + "description": "Session Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "Session Provider User ID.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Session Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Session Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "ip": { + "type": "string", + "description": "IP in use when the session was created.", + "example": "127.0.0.1" + }, + "osCode": { + "type": "string", + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "example": "Mac" + }, + "osName": { + "type": "string", + "description": "Operating system name.", + "example": "Mac" + }, + "osVersion": { + "type": "string", + "description": "Operating system version.", + "example": "Mac" + }, + "clientType": { + "type": "string", + "description": "Client type.", + "example": "browser" + }, + "clientCode": { + "type": "string", + "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", + "example": "CM" + }, + "clientName": { + "type": "string", + "description": "Client name.", + "example": "Chrome Mobile iOS" + }, + "clientVersion": { + "type": "string", + "description": "Client version.", + "example": "84.0" + }, + "clientEngine": { + "type": "string", + "description": "Client engine name.", + "example": "WebKit" + }, + "clientEngineVersion": { + "type": "string", + "description": "Client engine name.", + "example": "605.1.15" + }, + "deviceName": { + "type": "string", + "description": "Device name.", + "example": "smartphone" + }, + "deviceBrand": { + "type": "string", + "description": "Device brand name.", + "example": "Google" + }, + "deviceModel": { + "type": "string", + "description": "Device model name.", + "example": "Nexus 5" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "current": { + "type": "boolean", + "description": "Returns true if this the current user session.", + "example": true + }, + "factors": { + "type": "array", + "description": "Returns a list of active session factors.", + "items": { + "type": "string" + }, + "example": [ + "email" + ] + }, + "secret": { + "type": "string", + "description": "Secret used to authenticate the user. Only included if the request was made with an API key", + "example": "5e5bb8c16897e" + }, + "mfaUpdatedAt": { + "type": "string", + "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "expire", + "provider", + "providerUid", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "ip", + "osCode", + "osName", + "osVersion", + "clientType", + "clientCode", + "clientName", + "clientVersion", + "clientEngine", + "clientEngineVersion", + "deviceName", + "deviceBrand", + "deviceModel", + "countryCode", + "countryName", + "current", + "factors", + "secret", + "mfaUpdatedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "provider": "email", + "providerUid": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "ip": "127.0.0.1", + "osCode": "Mac", + "osName": "Mac", + "osVersion": "Mac", + "clientType": "browser", + "clientCode": "CM", + "clientName": "Chrome Mobile iOS", + "clientVersion": "84.0", + "clientEngine": "WebKit", + "clientEngineVersion": "605.1.15", + "deviceName": "smartphone", + "deviceBrand": "Google", + "deviceModel": "Nexus 5", + "countryCode": "US", + "countryName": "United States", + "current": true, + "factors": [ + "email" + ], + "secret": "5e5bb8c16897e", + "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "identity": { + "description": "Identity", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Identity ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Identity creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Identity update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "provider": { + "type": "string", + "description": "Identity Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "ID of the User in the Identity Provider.", + "example": "5e5bb8c16897e" + }, + "providerEmail": { + "type": "string", + "description": "Email of the User in the Identity Provider.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Identity Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Identity Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerIdToken": { + "type": "string", + "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", + "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "provider", + "providerUid", + "providerEmail", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "providerIdToken" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "provider": "email", + "providerUid": "5e5bb8c16897e", + "providerEmail": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "token": { + "description": "Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "jwt": { + "description": "JWT", + "type": "object", + "properties": { + "jwt": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "jwt" + ], + "example": { + "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "locale": { + "description": "Locale", + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "User IP address.", + "example": "127.0.0.1" + }, + "countryCode": { + "type": "string", + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", + "example": "US" + }, + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "example": "United States" + }, + "continentCode": { + "type": "string", + "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", + "example": "NA" + }, + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "example": "North America" + }, + "eu": { + "type": "boolean", + "description": "True if country is part of the European Union.", + "example": false + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "example": "USD" + }, + "city": { + "type": "string", + "description": "City", + "example": "Kathmandu", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Name of timezone", + "example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) of the IP", + "example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN", + "example": "GOOGLE", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider of the IP", + "example": "Google", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP", + "example": "Google LLC", + "nullable": true + } + }, + "required": [ + "ip", + "countryCode", + "country", + "continentCode", + "continent", + "eu", + "currency" + ], + "example": { + "ip": "127.0.0.1", + "countryCode": "US", + "country": "United States", + "continentCode": "NA", + "continent": "North America", + "eu": false, + "currency": "USD", + "city": "Kathmandu", + "timeZone": "Asia\/Kathmandu", + "postalCode": "44600", + "latitude": "82.345", + "longitude": "82.345", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "isp": "Google", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC" + } + }, + "localeCode": { + "description": "LocaleCode", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", + "example": "en-us" + }, + "name": { + "type": "string", + "description": "Locale name", + "example": "US" + } + }, + "required": [ + "code", + "name" + ], + "example": { + "code": "en-us", + "name": "US" + } + }, + "file": { + "description": "File", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "File ID.", + "example": "5e5ea5c16897e" + }, + "bucketId": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "File creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "File update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "name": { + "type": "string", + "description": "File name.", + "example": "Pink.png" + }, + "folder": { + "type": "string", + "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", + "example": "photos\/2026\/" + }, + "key": { + "type": "string", + "description": "Full virtual path of the file: the folder followed by the file name.", + "example": "photos\/2026\/Pink.png" + }, + "signature": { + "type": "string", + "description": "File MD5 signature.", + "example": "5d529fd02b544198ae075bd57c1762bb" + }, + "mimeType": { + "type": "string", + "description": "File mime type.", + "example": "image\/png" + }, + "sizeOriginal": { + "type": "integer", + "description": "File original size in bytes.", + "format": "int32", + "example": 17890 + }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "format": "int32", + "example": 12345 + }, + "chunksTotal": { + "type": "integer", + "description": "Total number of chunks available", + "format": "int32", + "example": 17890 + }, + "chunksUploaded": { + "type": "integer", + "description": "Total number of chunks uploaded", + "format": "int32", + "example": 17890 + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + } + }, + "required": [ + "$id", + "bucketId", + "$createdAt", + "$updatedAt", + "$permissions", + "name", + "folder", + "key", + "signature", + "mimeType", + "sizeOriginal", + "sizeActual", + "chunksTotal", + "chunksUploaded", + "encryption", + "compression" + ], + "example": { + "$id": "5e5ea5c16897e", + "bucketId": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "name": "Pink.png", + "folder": "photos\/2026\/", + "key": "photos\/2026\/Pink.png", + "signature": "5d529fd02b544198ae075bd57c1762bb", + "mimeType": "image\/png", + "sizeOriginal": 17890, + "sizeActual": 12345, + "chunksTotal": 17890, + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" + } + }, + "team": { + "description": "Team", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + } + } + }, + "membership": { + "description": "Membership", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Membership ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Membership creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Membership update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User name. Hide this attribute by toggling membership privacy in the Console.", + "example": "John Doe" + }, + "userEmail": { + "type": "string", + "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", + "example": "john@appwrite.io" + }, + "userPhone": { + "type": "string", + "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", + "example": "+1 555 555 5555" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "teamName": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "invited": { + "type": "string", + "description": "Date, the user has been invited to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "joined": { + "type": "string", + "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "confirm": { + "type": "boolean", + "description": "User confirmation status, true if the user has joined the team or false otherwise.", + "example": false + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", + "example": false + }, + "userAccessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "roles": { + "type": "array", + "description": "User list of roles", + "items": { + "type": "string" + }, + "example": [ + "owner" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "userName", + "userEmail", + "userPhone", + "teamId", + "teamName", + "invited", + "joined", + "confirm", + "mfa", + "userAccessedAt", + "roles" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "userName": "John Doe", + "userEmail": "john@appwrite.io", + "userPhone": "+1 555 555 5555", + "teamId": "5e5ea5c16897e", + "teamName": "VIP", + "invited": "2020-10-15T06:38:00.000+00:00", + "joined": "2020-10-15T06:38:00.000+00:00", + "confirm": false, + "mfa": false, + "userAccessedAt": "2020-10-15T06:38:00.000+00:00", + "roles": [ + "owner" + ] + } + }, + "execution": { + "description": "Execution", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Execution ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Execution creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Execution update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Execution roles.", + "items": { + "type": "string" + }, + "example": [ + "any" + ] + }, + "resourceId": { + "type": "string", + "description": "Function or site ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "description": "Execution resource type.", + "example": "functions", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + } + ] + }, + "deploymentId": { + "type": "string", + "description": "Deployment ID used to create the execution.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", + "example": "http", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "http" + ], + "title": "http" + }, + { + "type": "string", + "enum": [ + "schedule" + ], + "title": "schedule" + }, + { + "type": "string", + "enum": [ + "event" + ], + "title": "event" + } + ] + }, + "status": { + "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + } + ] + }, + "requestMethod": { + "type": "string", + "description": "HTTP request method type.", + "example": "GET" + }, + "requestPath": { + "type": "string", + "description": "HTTP request path and query.", + "example": "\/articles?id=5" + }, + "requestHeaders": { + "type": "array", + "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "responseStatusCode": { + "type": "integer", + "description": "HTTP response status code.", + "format": "int32", + "example": 200 + }, + "responseBody": { + "type": "string", + "description": "HTTP response body. This will return empty unless execution is created as synchronous.", + "example": "" + }, + "responseHeaders": { + "type": "array", + "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "logs": { + "type": "string", + "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "errors": { + "type": "string", + "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "duration": { + "type": "number", + "description": "Total time the resource(function\/site) took to respond, in seconds.", + "format": "double", + "example": 1.23 + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "resourceId", + "resourceType", + "deploymentId", + "trigger", + "status", + "requestMethod", + "requestPath", + "requestHeaders", + "responseStatusCode", + "responseBody", + "responseHeaders", + "logs", + "errors", + "duration" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "any" + ], + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "deploymentId": "5e5ea5c16897e", + "trigger": "http", + "status": "processing", + "requestMethod": "GET", + "requestPath": "\/articles?id=5", + "requestHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "responseStatusCode": 200, + "responseBody": "", + "responseHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "logs": "", + "errors": "", + "duration": 1.23, + "scheduledAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "country": { + "description": "Country", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "code": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "United States", + "code": "US" + } + }, + "continent": { + "description": "Continent", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Continent name.", + "example": "Europe" + }, + "code": { + "type": "string", + "description": "Continent two letter code.", + "example": "EU" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "Europe", + "code": "EU" + } + }, + "language": { + "description": "Language", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Language name.", + "example": "Italian" + }, + "code": { + "type": "string", + "description": "Language two-character ISO 639-1 codes.", + "example": "it" + }, + "nativeName": { + "type": "string", + "description": "Language native name.", + "example": "Italiano" + } + }, + "required": [ + "name", + "code", + "nativeName" + ], + "example": { + "name": "Italian", + "code": "it", + "nativeName": "Italiano" + } + }, + "currency": { + "description": "Currency", + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "Currency symbol.", + "example": "$" + }, + "name": { + "type": "string", + "description": "Currency name.", + "example": "US dollar" + }, + "symbolNative": { + "type": "string", + "description": "Currency native symbol.", + "example": "$" + }, + "decimalDigits": { + "type": "integer", + "description": "Number of decimal digits.", + "format": "int32", + "example": 2 + }, + "rounding": { + "type": "number", + "description": "Currency digit rounding.", + "format": "double", + "example": 0 + }, + "code": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", + "example": "USD" + }, + "namePlural": { + "type": "string", + "description": "Currency plural name", + "example": "US dollars" + } + }, + "required": [ + "symbol", + "name", + "symbolNative", + "decimalDigits", + "rounding", + "code", + "namePlural" + ], + "example": { + "symbol": "$", + "name": "US dollar", + "symbolNative": "$", + "decimalDigits": 2, + "rounding": 0, + "code": "USD", + "namePlural": "US dollars" + } + }, + "phone": { + "description": "Phone", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Phone code.", + "example": "+1" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + } + }, + "required": [ + "code", + "countryCode", + "countryName" + ], + "example": { + "code": "+1", + "countryCode": "US", + "countryName": "United States" + } + }, + "headers": { + "description": "Headers", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Header name.", + "example": "Content-Type" + }, + "value": { + "type": "string", + "description": "Header value.", + "example": "application\/json" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "Content-Type", + "value": "application\/json" + } + }, + "mfaChallenge": { + "description": "MFA Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "tokenSecret": { + "description": "Token Secret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. Exchange it for a session with the create session endpoint.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "passkey": { + "description": "Passkey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Passkey ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Passkey creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Passkey update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Passkey name.", + "example": "My laptop" + }, + "accessedAt": { + "type": "string", + "description": "Most recent sign-in with this passkey in ISO 8601 format. Empty until the passkey is used to sign in.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My laptop", + "accessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "passkeyChallenge": { + "description": "Passkey Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Challenge ID. When signing in, pass it back with the credential to receive a token.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Challenge creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "passkeyId": { + "type": "string", + "description": "ID of the passkey being registered. Empty for sign-in challenges.", + "example": "5e5ea5c16897e" + }, + "expire": { + "type": "string", + "description": "Challenge expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "publicKey": { + "type": "object", + "additionalProperties": true, + "description": "WebAuthn options in JSON form. Pass them to `PublicKeyCredential.parseCreationOptionsFromJSON()` when registering, or `PublicKeyCredential.parseRequestOptionsFromJSON()` when signing in.", + "example": { + "challenge": "PBN-3LnR1ZxSSpC0TgJsbUu92mcdgErmvtne916-yPs", + "rpId": "example.com", + "userVerification": "required" + } + } + }, + "required": [ + "$id", + "$createdAt", + "passkeyId", + "expire", + "publicKey" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "passkeyId": "5e5ea5c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "publicKey": { + "challenge": "PBN-3LnR1ZxSSpC0TgJsbUu92mcdgErmvtne916-yPs", + "rpId": "example.com", + "userVerification": "required" + } + } + }, + "passkeyList": { + "description": "Passkeys List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of passkeys that matched your query.", + "format": "int32", + "example": 5 + }, + "passkeys": { + "type": "array", + "description": "List of passkeys.", + "items": { + "$ref": "#\/components\/schemas\/passkey" + }, + "example": [] + } + }, + "required": [ + "total", + "passkeys" + ], + "example": { + "total": 5, + "passkeys": "" + } + }, + "mfaRecoveryCodes": { + "description": "MFA Recovery Codes", + "type": "object", + "properties": { + "recoveryCodes": { + "type": "array", + "description": "Recovery codes.", + "items": { + "type": "string" + }, + "example": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "required": [ + "recoveryCodes" + ], + "example": { + "recoveryCodes": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "mfaType": { + "description": "MFAType", + "type": "object", + "properties": { + "secret": { + "type": "string", + "description": "Secret token used for TOTP factor.", + "example": "[SHARED_SECRET]" + }, + "uri": { + "type": "string", + "description": "URI for authenticator apps.", + "example": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" + } + }, + "required": [ + "secret", + "uri" + ], + "example": { + "secret": "[SHARED_SECRET]", + "uri": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" + } + }, + "mfaFactors": { + "description": "MFAFactors", + "type": "object", + "properties": { + "totp": { + "type": "boolean", + "description": "Can TOTP be used for MFA challenge for this account.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Can phone (SMS) be used for MFA challenge for this account.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Can email be used for MFA challenge for this account.", + "example": true + }, + "recoveryCode": { + "type": "boolean", + "description": "Can recovery code be used for MFA challenge for this account.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Can custom factor be used for MFA challenge for this account.", + "example": true + } + }, + "required": [ + "totp", + "phone", + "email", + "recoveryCode", + "custom" + ], + "example": { + "totp": true, + "phone": true, + "email": true, + "recoveryCode": true, + "custom": true + } + }, + "transaction": { + "description": "Transaction", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Transaction ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Transaction creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Transaction update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", + "example": "pending" + }, + "operations": { + "type": "integer", + "description": "Number of operations in the transaction.", + "format": "int32", + "example": 5 + }, + "expiresAt": { + "type": "string", + "description": "Expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "operations", + "expiresAt" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "status": "pending", + "operations": 5, + "expiresAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "subscriber": { + "description": "Subscriber", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Subscriber ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Subscriber creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Subscriber update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "targetId": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "target": { + "type": "object", + "description": "Target.", + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/target" + } + ] + }, + "userId": { + "type": "string", + "description": "Topic ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User Name.", + "example": "Aegon Targaryen" + }, + "topicId": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "targetId", + "target", + "userId", + "userName", + "topicId", + "providerType" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "targetId": "259125845563242502", + "target": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" + }, + "userId": "5e5ea5c16897e", + "userName": "Aegon Targaryen", + "topicId": "259125845563242502", + "providerType": "email" + } + }, + "target": { + "description": "Target", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Target creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Target update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Target Name.", + "example": "Apple iPhone 12" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "259125845563242502" + }, + "providerId": { + "type": "string", + "description": "Provider ID.", + "example": "259125845563242502", + "nullable": true + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + }, + "identifier": { + "type": "string", + "description": "The target identifier.", + "example": "token" + }, + "expired": { + "type": "boolean", + "description": "Is the target expired.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "userId", + "providerType", + "identifier", + "expired" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Apple iPhone 12", + "userId": "259125845563242502", + "providerId": "259125845563242502", + "providerType": "email", + "identifier": "token", + "expired": false + } + }, + "app": { + "description": "App", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Application name.", + "example": "My Application" + }, + "description": { + "type": "string", + "description": "Application description shown to users during OAuth2 consent.", + "example": "Connect your workspace to My Application." + }, + "clientUri": { + "type": "string", + "description": "Application homepage URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com" + }, + "logoUri": { + "type": "string", + "description": "Application logo URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/logo.png" + }, + "privacyPolicyUrl": { + "type": "string", + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/privacy" + }, + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/terms" + }, + "contacts": { + "type": "array", + "description": "Application support or security contact emails.", + "items": { + "type": "string" + }, + "example": [ + "support@example.com" + ] + }, + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "example": "Automate your workspace." + }, + "tags": { + "type": "array", + "description": "Application tags shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "productivity", + "automation" + ] + }, + "labels": { + "type": "array", + "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", + "items": { + "type": "string" + }, + "example": [ + "featured" + ] + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/screenshot.png" + ] + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/support" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/data-deletion" + }, + "redirectUris": { + "type": "array", + "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/callback" + ] + }, + "postLogoutRedirectUris": { + "type": "array", + "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/logged-out" + ] + }, + "enabled": { + "type": "boolean", + "description": "Whether the app is enabled or not.", + "example": true + }, + "type": { + "type": "string", + "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", + "example": "confidential" + }, + "deviceFlow": { + "type": "boolean", + "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", + "example": false + }, + "teamId": { + "type": "string", + "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", + "example": "5e5ea5c16897e" + }, + "installationScopes": { + "type": "array", + "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "installationRedirectUrl": { + "type": "string", + "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", + "example": "https:\/\/example.com\/setup" + }, + "secrets": { + "type": "array", + "description": "List of application secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "clientUri", + "logoUri", + "privacyPolicyUrl", + "termsUrl", + "contacts", + "tagline", + "tags", + "labels", + "images", + "supportUrl", + "dataDeletionUrl", + "redirectUris", + "postLogoutRedirectUris", + "enabled", + "type", + "deviceFlow", + "teamId", + "userId", + "installationScopes", + "installationRedirectUrl", + "secrets" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Application", + "description": "Connect your workspace to My Application.", + "clientUri": "https:\/\/example.com", + "logoUri": "https:\/\/example.com\/logo.png", + "privacyPolicyUrl": "https:\/\/example.com\/privacy", + "termsUrl": "https:\/\/example.com\/terms", + "contacts": [ + "support@example.com" + ], + "tagline": "Automate your workspace.", + "tags": [ + "productivity", + "automation" + ], + "labels": [ + "featured" + ], + "images": [ + "https:\/\/example.com\/screenshot.png" + ], + "supportUrl": "https:\/\/example.com\/support", + "dataDeletionUrl": "https:\/\/example.com\/data-deletion", + "redirectUris": [ + "https:\/\/example.com\/callback" + ], + "postLogoutRedirectUris": [ + "https:\/\/example.com\/logged-out" + ], + "enabled": true, + "type": "confidential", + "deviceFlow": false, + "teamId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "installationScopes": [ + "organization:organization.read" + ], + "installationRedirectUrl": "https:\/\/example.com\/setup", + "secrets": [] + } + }, + "appSecret": { + "description": "AppSecret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "example": "" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appSecretPlaintext": { + "description": "AppSecretPlaintext", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appScope": { + "description": "AppScope", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Scope value as requested by apps.", + "example": "organization:organization.read" + }, + "description": { + "type": "string", + "description": "Human-readable description of what the scope grants.", + "example": "Access to read the organization" + }, + "type": { + "type": "string", + "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", + "example": "organization" + }, + "category": { + "type": "string", + "description": "Scope category, used to group scopes on consent and installation screens.", + "example": "Organization" + }, + "deprecated": { + "type": "boolean", + "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", + "example": false + } + }, + "required": [ + "value", + "description", + "type", + "category", + "deprecated" + ], + "example": { + "value": "organization:organization.read", + "description": "Access to read the organization", + "type": "organization", + "category": "Organization", + "deprecated": false + } + }, + "appInstallation": { + "description": "AppInstallation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Installation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Installation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Installation update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the installed application.", + "example": "5e5ea5c16897e" + }, + "teamId": { + "type": "string", + "description": "ID of the team the application is installed on.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "authorizationDetails": { + "type": "array", + "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ] + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the installation.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the installation.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "teamId", + "scopes", + "authorizationDetails", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "teamId": "5e5ea5c16897e", + "scopes": [ + "organization:organization.read" + ], + "authorizationDetails": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ], + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appKey": { + "description": "AppKey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App key creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App key update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this app key belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "App key secret.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the app key secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the app key.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the app key.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2Authorize": { + "description": "OAuth2 Authorize", + "type": "object", + "properties": { + "grantId": { + "type": "string", + "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", + "example": "5e5ea5c16897e" + }, + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "grantId", + "redirectUrl" + ], + "example": { + "grantId": "5e5ea5c16897e", + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Approve": { + "description": "OAuth2 Approve", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Reject": { + "description": "OAuth2 Reject", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", + "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "oauth2Grant": { + "description": "OAuth2 Grant", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Grant ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Grant creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Grant update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the grant belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the OAuth2 client (app) the grant was requested for.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Requested OAuth2 scopes the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", + "example": "login" + }, + "redirectUri": { + "type": "string", + "description": "Redirect URI the user will be sent to after the flow completes.", + "example": "https:\/\/example.com\/callback" + }, + "authTime": { + "type": "integer", + "description": "Unix timestamp of when the user last authenticated.", + "format": "int32", + "example": 1592981250 + }, + "expire": { + "type": "string", + "description": "Grant expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "scopes", + "resources", + "authorizationDetails", + "prompt", + "redirectUri", + "authTime", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "prompt": "login", + "redirectUri": "https:\/\/example.com\/callback", + "authTime": 1592981250, + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2DeviceAuthorization": { + "description": "OAuth2 Device Authorization", + "type": "object", + "properties": { + "device_code": { + "type": "string", + "description": "Device verification code used by the client to poll the token endpoint.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "user_code": { + "type": "string", + "description": "Short code the end user enters on the verification page.", + "example": "ABCD-EFGH" + }, + "verification_uri": { + "type": "string", + "description": "URL where the end user enters the user code.", + "example": "https:\/\/appwrite.io\/oauth2\/device" + }, + "verification_uri_complete": { + "type": "string", + "description": "Verification URL with the user code prefilled as a query parameter.", + "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the device code and user code in seconds.", + "format": "int32", + "example": 900 + }, + "interval": { + "type": "integer", + "description": "Minimum polling interval for the token endpoint in seconds.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "device_code", + "user_code", + "verification_uri", + "verification_uri_complete", + "expires_in", + "interval" + ], + "example": { + "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "user_code": "ABCD-EFGH", + "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", + "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "expires_in": 900, + "interval": 5 + } + }, + "oauth2PAR": { + "description": "OAuth2 PAR", + "type": "object", + "properties": { + "request_uri": { + "type": "string", + "description": "Authorization request handle to pass to the authorize endpoint.", + "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the authorization request handle in seconds.", + "format": "int32", + "example": 600 + } + }, + "required": [ + "request_uri", + "expires_in" + ], + "example": { + "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", + "expires_in": 600 + } + }, + "oauth2Token": { + "description": "OAuth2 Token", + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "OAuth2 access token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer" + }, + "expires_in": { + "type": "integer", + "description": "Access token lifetime in seconds.", + "format": "int32", + "example": 3600 + }, + "refresh_token": { + "type": "string", + "description": "OAuth2 refresh token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the access token.", + "example": "openid email profile" + }, + "authorization_details": { + "type": "string", + "description": "Granted RFC 9396 authorization details as a JSON string.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "nullable": true + }, + "id_token": { + "type": "string", + "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "nullable": true + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "refresh_token", + "scope" + ], + "example": { + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "token_type": "Bearer", + "expires_in": 3600, + "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", + "scope": "openid email profile", + "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + } + }, + "oauth2Consent": { + "description": "OAuth2 Consent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Consent ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Consent creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Consent update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the consent belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2ConsentToken": { + "description": "OAuth2 Consent Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token family ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "consentId": { + "type": "string", + "description": "ID of the consent the token family was issued under.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of the user the token family belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Expiration time of the current access token of this family in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "consentId", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "consentId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2Project": { + "description": "OAuth2 Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "region": { + "type": "string", + "description": "Region ID the project is deployed in.", + "example": "fra" + }, + "endpoint": { + "type": "string", + "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", + "example": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "required": [ + "$id", + "region", + "endpoint" + ], + "example": { + "$id": "5e5ea5c16897e", + "region": "fra", + "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "oauth2Organization": { + "description": "OAuth2 Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Organization ID.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "$id" + ], + "example": { + "$id": "5e5ea5c16897e" + } + }, + "oauth2ProjectList": { + "description": "OAuth2 accessible projects list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "oauth2OrganizationList": { + "description": "OAuth2 accessible organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of organizations that matched your query.", + "format": "int32", + "example": 5 + }, + "organizations": { + "type": "array", + "description": "List of organizations.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Organization" + }, + "example": [] + } + }, + "required": [ + "total", + "organizations" + ], + "example": { + "total": 5, + "organizations": "" + } + }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "format": "int32", + "example": 5 + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "example": [] + } + }, + "required": [ + "total", + "consents" + ], + "example": { + "total": 5, + "consents": "" + } + }, + "oauth2ConsentTokenList": { + "description": "OAuth2 consent tokens list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "appsList": { + "description": "Apps list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of apps that matched your query.", + "format": "int32", + "example": 5 + }, + "apps": { + "type": "array", + "description": "List of apps.", + "items": { + "$ref": "#\/components\/schemas\/app" + }, + "example": [] + } + }, + "required": [ + "total", + "apps" + ], + "example": { + "total": 5, + "apps": "" + } + }, + "appSecretList": { + "description": "App secrets list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of secrets that matched your query.", + "format": "int32", + "example": 5 + }, + "secrets": { + "type": "array", + "description": "List of secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "total", + "secrets" + ], + "example": { + "total": 5, + "secrets": "" + } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "format": "int32", + "example": 5 + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "example": [] + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "appInstallationList": { + "description": "App installations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of installations that matched your query.", + "format": "int32", + "example": 5 + }, + "installations": { + "type": "array", + "description": "List of installations.", + "items": { + "$ref": "#\/components\/schemas\/appInstallation" + }, + "example": [] + } + }, + "required": [ + "total", + "installations" + ], + "example": { + "total": 5, + "installations": "" + } + }, + "appKeyList": { + "description": "App keys list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/appKey" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + } + }, + "securitySchemes": { + "Project": { + "type": "apiKey", + "name": "X-Appwrite-Project", + "description": "Your project ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ], + "demo": "<YOUR_PROJECT_ID>" + } + }, + "JWT": { + "type": "apiKey", + "name": "X-Appwrite-JWT", + "description": "Your secret JSON Web Token", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ], + "demo": "<YOUR_JWT>" + } + }, + "Bearer": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "Locale": { + "type": "apiKey", + "name": "X-Appwrite-Locale", + "description": "", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ], + "demo": "en" + } + }, + "Session": { + "type": "apiKey", + "name": "X-Appwrite-Session", + "description": "The user session to authenticate with", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "Cookie": { + "type": "apiKey", + "name": "Cookie", + "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "ImpersonateUserId": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Id", + "description": "Impersonate a user by ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "ImpersonateUserEmail": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Email", + "description": "Impersonate a user by email", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + }, + "ImpersonateUserPhone": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Phone", + "description": "Impersonate a user by phone", + "in": "header", + "x-appwrite": { + "platforms": [ + "client" + ] + } + } + } + }, + "externalDocs": { + "description": "Full API docs, specs and tutorials", + "url": "https:\/\/appwrite.io\/docs" + } +} \ No newline at end of file diff --git a/specs/2.4.x/open-api3-2.4.x-console.json b/specs/2.4.x/open-api3-2.4.x-console.json new file mode 100644 index 000000000..abca512bc --- /dev/null +++ b/specs/2.4.x/open-api3-2.4.x-console.json @@ -0,0 +1,150444 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "2.4.0", + "title": "Appwrite", + "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", + "termsOfService": "https:\/\/appwrite.io\/policy\/terms", + "contact": { + "name": "Appwrite Team", + "url": "https:\/\/appwrite.io\/support", + "email": "team@appwrite.io" + }, + "license": { + "name": "BSD-3-Clause", + "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" + } + }, + "servers": [ + { + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." + }, + { + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } + } + ], + "paths": { + "\/account": { + "get": { + "summary": "Get account", + "operationId": "accountGet", + "tags": [ + "account" + ], + "description": "Get the currently logged in user.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create account", + "operationId": "accountCreate", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete account", + "operationId": "accountDelete", + "tags": [ + "account" + ], + "description": "Delete the currently logged in user.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/account\/billing-addresses": { + "get": { + "summary": "List billing addresses", + "operationId": "accountListBillingAddresses", + "tags": [ + "account" + ], + "description": "List all billing addresses for a user.", + "responses": { + "200": { + "description": "Billing address list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddressList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-billing-addresses.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, expired, failed", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create billing address", + "operationId": "accountCreateBillingAddress", + "tags": [ + "account" + ], + "description": "Add a new billing address to a user's account.", + "responses": { + "201": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/create-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "country": { + "description": "Country", + "type": "string", + "example": "<COUNTRY>" + }, + "city": { + "description": "City", + "type": "string", + "example": "<CITY>" + }, + "streetAddress": { + "description": "Street address", + "type": "string", + "example": "<STREET_ADDRESS>" + }, + "addressLine2": { + "description": "Address line 2", + "type": "string", + "default": "", + "example": "<ADDRESS_LINE2>", + "nullable": true + }, + "state": { + "description": "State or province", + "type": "string", + "default": "", + "example": "<STATE>", + "nullable": true + }, + "postalCode": { + "description": "Postal code", + "type": "string", + "default": "", + "example": "<POSTAL_CODE>", + "nullable": true + } + }, + "required": [ + "country", + "city", + "streetAddress" + ] + } + } + } + } + } + }, + "\/account\/billing-addresses\/{billingAddressId}": { + "get": { + "summary": "Get billing address", + "operationId": "accountGetBillingAddress", + "tags": [ + "account" + ], + "description": "Get a specific billing address for a user using it's ID.", + "responses": { + "200": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "schema": { + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update billing address", + "operationId": "accountUpdateBillingAddress", + "tags": [ + "account" + ], + "description": "Update a specific billing address using it's ID.", + "responses": { + "200": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "schema": { + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "country": { + "description": "Country", + "type": "string", + "example": "<COUNTRY>" + }, + "city": { + "description": "City", + "type": "string", + "example": "<CITY>" + }, + "streetAddress": { + "description": "Street address", + "type": "string", + "example": "<STREET_ADDRESS>" + }, + "addressLine2": { + "description": "Address line 2", + "type": "string", + "default": "", + "example": "<ADDRESS_LINE2>", + "nullable": true + }, + "state": { + "description": "State or province", + "type": "string", + "default": "", + "example": "<STATE>", + "nullable": true + }, + "postalCode": { + "description": "Postal code", + "type": "string", + "default": "", + "example": "<POSTAL_CODE>", + "nullable": true + } + }, + "required": [ + "country", + "city", + "streetAddress" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete billing address", + "operationId": "accountDeleteBillingAddress", + "tags": [ + "account" + ], + "description": "Delete a specific billing address using it's ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/delete-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "billingAddressId", + "description": "Billing address unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents": { + "get": { + "summary": "List consents", + "operationId": "accountListConsents", + "tags": [ + "account" + ], + "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", + "responses": { + "200": { + "description": "OAuth2 consents list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}": { + "get": { + "summary": "Get consent", + "operationId": "accountGetConsent", + "tags": [ + "account" + ], + "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", + "responses": { + "200": { + "description": "OAuth2 Consent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Consent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consent-tokens.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { + "get": { + "summary": "Get consent token", + "operationId": "accountGetConsentToken", + "tags": [ + "account" + ], + "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 Consent Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/coupons\/{couponId}": { + "get": { + "summary": "Get coupon details", + "operationId": "accountGetCoupon", + "tags": [ + "account" + ], + "description": "Get coupon details for an account.", + "responses": { + "200": { + "description": "Coupon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/coupon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-coupon.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "couponId", + "description": "ID of the coupon", + "required": true, + "schema": { + "type": "string", + "example": "<COUPON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/email": { + "patch": { + "summary": "Update email", + "operationId": "accountUpdateEmail", + "tags": [ + "account" + ], + "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/identities": { + "get": { + "summary": "List identities", + "operationId": "accountListIdentities", + "tags": [ + "account" + ], + "description": "Get the list of identities for the currently logged in user.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "accountDeleteIdentity", + "tags": [ + "account" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "accountListInvoices", + "tags": [ + "account" + ], + "description": "List all invoices tied to an account.", + "responses": { + "200": { + "description": "Billing invoices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoiceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-invoices.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/account\/jwts": { + "post": { + "summary": "Create JWT", + "operationId": "accountCreateJWT", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a JSON Web Token. You can use the resulting JWT to authenticate on behalf of the current user when working with the Appwrite server-side API and SDKs. The JWT secret is valid for 15 minutes from its creation and will be invalid if the user will logout in that time frame.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-jwt.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/account\/keys": { + "get": { + "summary": "List account key", + "operationId": "accountListKeys", + "tags": [ + "account" + ], + "description": "Get a list of all API keys from the current account.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create account key", + "operationId": "accountCreateKey", + "tags": [ + "account" + ], + "description": "Create a new account API key.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "AccountKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/account\/keys\/{keyId}": { + "get": { + "summary": "Get account key", + "operationId": "accountGetKey", + "tags": [ + "account" + ], + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your account including it's scopes.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update account key", + "operationId": "accountUpdateKey", + "tags": [ + "account" + ], + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "AccountKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete account key", + "operationId": "accountDeleteKey", + "tags": [ + "account" + ], + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "account\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "accountUpdateMFA", + "tags": [ + "account" + ], + "description": "Enable or disable MFA on an account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/account\/mfa\/authenticators\/{type}": { + "post": { + "summary": "Create authenticator", + "operationId": "accountCreateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "responses": { + "200": { + "description": "MFAType", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaType" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + }, + "methods": [ + { + "name": "createMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + } + }, + { + "name": "createMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator. Must be `totp`", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update authenticator (confirmation)", + "operationId": "accountUpdateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + }, + "methods": [ + { + "name": "updateMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + } + }, + { + "name": "updateMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete authenticator", + "operationId": "accountDeleteMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Delete an authenticator for a user by ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa\/challenges": { + "post": { + "summary": "Create MFA challenge", + "operationId": "accountCreateMfaChallenge", + "tags": [ + "account" + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallenge" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + }, + "methods": [ + { + "name": "createMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + } + }, + { + "name": "createMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "factor": { + "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", + "type": "string", + "example": "email", + "title": "AuthenticationFactor", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + }, + { + "type": "string", + "enum": [ + "recoverycode" + ], + "title": "recoverycode" + }, + { + "type": "string", + "enum": [ + "custom" + ], + "title": "custom" + } + ] + } + }, + "required": [ + "factor" + ] + } + } + } + } + }, + "put": { + "summary": "Update MFA challenge (confirmation)", + "operationId": "accountUpdateMfaChallenge", + "tags": [ + "account" + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},challengeId:{param-challengeId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + }, + "methods": [ + { + "name": "updateMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + } + }, + { + "name": "updateMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "ID of the challenge.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "challengeId", + "otp" + ] + } + } + } + } + } + }, + "\/account\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "accountListMfaFactors", + "tags": [ + "account" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/mfa\/recovery-codes": { + "get": { + "summary": "List MFA recovery codes", + "operationId": "accountGetMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create MFA recovery codes", + "operationId": "accountCreateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "accountUpdateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/name": { + "patch": { + "summary": "Update name", + "operationId": "accountUpdateName", + "tags": [ + "account" + ], + "description": "Update currently logged in user account name.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/account\/passkeys": { + "get": { + "summary": "List passkeys", + "operationId": "accountListPasskeys", + "tags": [ + "account" + ], + "description": "Get the list of verified passkeys registered by the currently logged in user.", + "responses": { + "200": { + "description": "Passkeys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/list-passkeys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter and order on the following attributes: $id, $createdAt, $updatedAt, name, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create passkey", + "operationId": "accountCreatePasskey", + "tags": [ + "account" + ], + "description": "Start registering a passkey for the currently logged in user. The session must have signed in or completed an MFA challenge within the last 10 minutes. Pass the returned `publicKey` options to `navigator.credentials.create()`, then complete the registration with [Update passkey verification](\/docs\/references\/cloud\/client-web\/account#updatePasskeyVerification). The passkey stays pending until verified, and the challenge expires after 5 minutes.", + "responses": { + "201": { + "description": "Passkey Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/create-passkey.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "passkeyId": { + "description": "Passkey ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "unique()", + "example": "<PASSKEY_ID>" + }, + "name": { + "description": "Passkey name, shown when listing passkeys. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + } + } + } + } + } + } + }, + "\/account\/passkeys\/{passkeyId}": { + "get": { + "summary": "Get passkey", + "operationId": "accountGetPasskey", + "tags": [ + "account" + ], + "description": "Get a verified passkey of the currently logged in user by its unique ID.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/get-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update passkey", + "operationId": "accountUpdatePasskey", + "tags": [ + "account" + ], + "description": "Rename a passkey of the currently logged in user.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/update-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Passkey name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete passkey", + "operationId": "accountDeletePasskey", + "tags": [ + "account" + ], + "description": "Delete a passkey from the currently logged in user. The passkey can no longer be used to sign in, although it may remain stored on the user's device. The session must have signed in or completed an MFA challenge within the last 10 minutes.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/delete-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/passkeys\/{passkeyId}\/verification": { + "put": { + "summary": "Update passkey verification", + "operationId": "accountUpdatePasskeyVerification", + "tags": [ + "account" + ], + "description": "Complete a passkey registration started with [Create passkey](\/docs\/references\/cloud\/client-web\/account#createPasskey). Pass the JSON form of the credential returned by `navigator.credentials.create()`, for example `credential.toJSON()`. Each registration can be verified once; a failed attempt requires starting it again.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/update-passkey-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "credential": { + "description": "Registration credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "credential" + ] + } + } + } + } + } + }, + "\/account\/password": { + "patch": { + "summary": "Update password", + "operationId": "accountUpdatePassword", + "tags": [ + "account" + ], + "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-password.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "oldPassword": { + "description": "Current user password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/account\/payment-methods": { + "get": { + "summary": "List payment methods", + "operationId": "accountListPaymentMethods", + "tags": [ + "account" + ], + "description": "List payment methods for this account.", + "responses": { + "200": { + "description": "Payment methods list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethodList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/list-payment-methods.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, expired, failed", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create new payment method", + "operationId": "accountCreatePaymentMethod", + "tags": [ + "account" + ], + "description": "Create a new payment method for the current user account.", + "responses": { + "201": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/create-payment-method.md", + "rate-limit": 10, + "rate-time": 86400, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/account\/payment-methods\/{paymentMethodId}": { + "get": { + "summary": "Get payment method", + "operationId": "accountGetPaymentMethod", + "tags": [ + "account" + ], + "description": "Get a specific payment method for the user.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/get-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update payment method", + "operationId": "accountUpdatePaymentMethod", + "tags": [ + "account" + ], + "description": "Update a new payment method for the current user account.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expiryMonth": { + "description": "Payment expiry month", + "type": "integer", + "example": 1, + "format": "int32" + }, + "expiryYear": { + "description": "Expiry year", + "type": "integer", + "example": 2026, + "format": "int32" + }, + "state": { + "description": "State of the payment method country", + "type": "string", + "example": "<STATE>" + } + }, + "required": [ + "expiryMonth", + "expiryYear" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete payment method", + "operationId": "accountDeletePaymentMethod", + "tags": [ + "account" + ], + "description": "Delete a specific payment method from a user's account.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/delete-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/payment-methods\/{paymentMethodId}\/provider": { + "patch": { + "summary": "Update payment method provider id", + "operationId": "accountUpdatePaymentMethodProvider", + "tags": [ + "account" + ], + "description": "Update payment method provider.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerMethodId": { + "description": "Payment method ID from the payment provider", + "type": "string", + "example": "<PROVIDER_METHOD_ID>" + }, + "name": { + "description": "Name in the payment method", + "type": "string", + "example": "<NAME>" + }, + "state": { + "description": "State of the payment method country", + "type": "string", + "example": "<STATE>", + "nullable": true + } + }, + "required": [ + "providerMethodId", + "name" + ] + } + } + } + } + } + }, + "\/account\/payment-methods\/{paymentMethodId}\/setup": { + "patch": { + "summary": "Update payment method with new setup with mandates for indian cards", + "operationId": "accountUpdatePaymentMethodMandateOptions", + "tags": [ + "account" + ], + "description": "Update payment method mandate options.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "account\/update-payment-method-mandate-options.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "accountUpdatePhone", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "phone", + "password" + ] + } + } + } + } + } + }, + "\/account\/prefs": { + "get": { + "summary": "Get account preferences", + "operationId": "accountGetPrefs", + "tags": [ + "account" + ], + "description": "Get the preferences as a key-value object for the currently logged in user.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update preferences", + "operationId": "accountUpdatePrefs", + "tags": [ + "account" + ], + "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/account\/recovery": { + "post": { + "summary": "Create password recovery", + "operationId": "accountCreateRecovery", + "tags": [ + "account" + ], + "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "email", + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (confirmation)", + "operationId": "accountUpdateRecovery", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid reset token.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/recovery\/otp": { + "post": { + "summary": "Create password recovery (OTP)", + "operationId": "accountCreateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "email" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (OTP)", + "operationId": "accountUpdateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid recovery OTP code.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions": { + "get": { + "summary": "List sessions", + "operationId": "accountListSessions", + "tags": [ + "account" + ], + "description": "Get the list of active sessions across different devices for the currently logged in user.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "delete": { + "summary": "Delete sessions", + "operationId": "accountDeleteSessions", + "tags": [ + "account" + ], + "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-sessions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "current", + "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/anonymous": { + "post": { + "summary": "Create anonymous session", + "operationId": "accountCreateAnonymousSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-anonymous-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/sessions\/email": { + "post": { + "summary": "Create email password session", + "operationId": "accountCreateEmailPasswordSession", + "tags": [ + "account" + ], + "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-email-password-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},email:{param-email}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "duration": { + "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions\/id-token": { + "post": { + "summary": "Create ID token session", + "operationId": "accountCreateIdTokenSession", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-id-token-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", + "type": "string", + "example": "apple", + "title": "IdTokenProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + } + ] + }, + "idToken": { + "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", + "type": "string", + "example": "<ID_TOKEN>" + }, + "nonce": { + "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "accessToken": { + "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", + "type": "string", + "default": "", + "example": "<ACCESS_TOKEN>" + }, + "accessTokenExpiry": { + "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "name": { + "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "provider", + "idToken" + ] + } + } + } + } + } + }, + "\/account\/sessions\/magic-url": { + "put": { + "summary": "Update magic URL session", + "operationId": "accountUpdateMagicURLSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-magic-url-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 session", + "operationId": "accountCreateOAuth2Session", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the email received from the OAuth2 provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-o-auth-2-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "state", + "description": "An opaque value your app generates and keeps, for example in a cookie. It is returned unchanged as the `state` query parameter on the success and failure URLs, so your app can check that the sign-in it receives is one it started. Printable ASCII only (RFC 6749 Appendix A.5). Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/phone": { + "put": { + "summary": "Update phone session", + "operationId": "accountUpdatePhoneSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-phone-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/token": { + "post": { + "summary": "Create session", + "operationId": "accountCreateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/{sessionId}": { + "get": { + "summary": "Get session", + "operationId": "accountGetSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/get-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to get the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update session", + "operationId": "accountUpdateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to update the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete session", + "operationId": "accountDeleteSession", + "tags": [ + "account" + ], + "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-session.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to delete the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + } + }, + "\/account\/status": { + "patch": { + "summary": "Update status", + "operationId": "accountUpdateStatus", + "tags": [ + "account" + ], + "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/targets\/push": { + "post": { + "summary": "Create push target", + "operationId": "accountCreatePushTarget", + "tags": [ + "account" + ], + "description": "Use this endpoint to register a device for push notifications. Provide a target ID (custom or generated using ID.unique()), a device identifier (usually a device token), and optionally specify which provider should send notifications to this target. The target is automatically linked to the current session and includes device information like brand and model. A session holds one push target per provider, so if one already exists this endpoint updates and returns that target instead of creating a second one, and a device that rotates its token is never notified twice.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/create-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TARGET_ID>" + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + } + }, + "required": [ + "targetId", + "identifier" + ] + } + } + } + } + } + }, + "\/account\/targets\/{targetId}\/push": { + "put": { + "summary": "Update push target", + "operationId": "accountUpdatePushTarget", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's push notification target. You can modify the target's identifier (device token) and provider ID (token, email, phone etc.). The target must exist and belong to the current user. If you change the provider ID, notifications will be sent through the new messaging provider instead.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/update-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + } + }, + "required": [ + "identifier" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete push target", + "operationId": "accountDeletePushTarget", + "tags": [ + "account" + ], + "description": "Delete a push notification target for the currently logged in user. After deletion, the device will no longer receive push notifications. The target must exist and belong to the current user.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pushTargets", + "demo": "account\/delete-push-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/tokens\/email": { + "post": { + "summary": "Create email token (OTP)", + "operationId": "accountCreateEmailToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-email-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/magic-url": { + "post": { + "summary": "Create magic URL token", + "operationId": "accountCreateMagicURLToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-magic-url-token.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 token", + "operationId": "accountCreateOAuth2Token", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-o-auth-2-token.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "state", + "description": "An opaque value your app generates and keeps, for example in a cookie. It is returned unchanged as the `state` query parameter on the success and failure URLs, so your app can check that the sign-in it receives is one it started. Printable ASCII only (RFC 6749 Appendix A.5). Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/account\/tokens\/passkey": { + "post": { + "summary": "Create passkey token", + "operationId": "accountCreatePasskeyToken", + "tags": [ + "account" + ], + "description": "Start signing in with a passkey. No email or user ID is needed: pass the returned `publicKey` options to `navigator.credentials.get()` and the user picks one of their passkeys. Then call [Update passkey token](\/docs\/references\/cloud\/client-web\/account#updatePasskeyToken) with the credential to receive a token, and exchange it with [Create session](\/docs\/references\/cloud\/client-web\/account#createSession). The challenge expires after 5 minutes.", + "responses": { + "201": { + "description": "Passkey Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-passkey-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update passkey token", + "operationId": "accountUpdatePasskeyToken", + "tags": [ + "account" + ], + "description": "Complete a passkey sign-in started with [Create passkey token](\/docs\/references\/cloud\/client-web\/account#createPasskeyToken). Pass the challenge ID and the JSON form of the credential returned by `navigator.credentials.get()`, for example `credential.toJSON()`. The returned token includes its secret and expires after 1 minute: exchange it for a session with [Create session](\/docs\/references\/cloud\/client-web\/account#createSession). Passkeys require user verification, so the session also satisfies MFA. Each challenge can only be used once.", + "responses": { + "201": { + "description": "Token Secret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/tokenSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/update-passkey-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "Challenge ID returned by createPasskeyToken.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "credential": { + "description": "Authentication credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "challengeId", + "credential" + ] + } + } + } + } + } + }, + "\/account\/tokens\/phone": { + "post": { + "summary": "Create phone token", + "operationId": "accountCreatePhoneToken", + "tags": [ + "account" + ], + "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-phone-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},phone:{param-phone}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "userId", + "phone" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email": { + "post": { + "summary": "Create email verification", + "operationId": "accountCreateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-email-verification.md", + "public": true + }, + { + "name": "createVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createEmailVerification" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "url": { + "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update email verification (confirmation)", + "operationId": "accountUpdateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "updateEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-email-verification.md", + "public": true + }, + { + "name": "updateVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateEmailVerification" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email\/otp": { + "post": { + "summary": "Create email verification (OTP)", + "operationId": "accountCreateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "put": { + "summary": "Update email verification (OTP)", + "operationId": "accountUpdateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification OTP code.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/phone": { + "post": { + "summary": "Create phone verification", + "operationId": "accountCreatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},userId:{userId}", + "url:{url},ip:{ip}" + ], + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update phone verification (confirmation)", + "operationId": "accountUpdatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/activities\/events": { + "get": { + "summary": "List events", + "operationId": "activitiesListEvents", + "tags": [ + "activities" + ], + "description": "List all events for selected filters.", + "responses": { + "200": { + "description": "Activity event list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEventList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "activities\/list-events.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as userId, teamId, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/activities\/events\/{eventId}": { + "get": { + "summary": "Get event", + "operationId": "activitiesGetEvent", + "tags": [ + "activities" + ], + "description": "Get event by ID.\n", + "responses": { + "200": { + "description": "ActivityEvent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEvent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "activities\/get-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "eventId", + "description": "Event ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EVENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/admin\/cache\/platform": { + "delete": { + "summary": "Delete platform cache", + "operationId": "adminDeletePlatformCache", + "tags": [ + "admin" + ], + "description": "Delete everything cached from the platform database in the region serving the request.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "cache", + "demo": "admin\/delete-platform-cache.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "console", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/admin\/cache\/platform\/resources": { + "delete": { + "summary": "Delete platform resource cache", + "operationId": "adminDeletePlatformResourceCache", + "tags": [ + "admin" + ], + "description": "Delete the cache of one platform resource, or of every resource of a type, in the region serving the request.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "cache", + "demo": "admin\/delete-platform-resource-cache.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "console", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resourceType", + "description": "Resource type.", + "required": true, + "schema": { + "type": "string", + "example": "projects", + "title": "PlatformResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "organizations" + ], + "title": "organizations" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "memberships" + ], + "title": "memberships" + }, + { + "type": "string", + "enum": [ + "rules" + ], + "title": "rules" + }, + { + "type": "string", + "enum": [ + "keys" + ], + "title": "keys" + }, + { + "type": "string", + "enum": [ + "platforms" + ], + "title": "platforms" + }, + { + "type": "string", + "enum": [ + "webhooks" + ], + "title": "webhooks" + }, + { + "type": "string", + "enum": [ + "certificates" + ], + "title": "certificates" + } + ] + }, + "in": "query" + }, + { + "name": "resourceId", + "description": "Resource ID. Leave empty to delete the cache of every resource of this type.", + "required": false, + "schema": { + "type": "string", + "example": "<RESOURCE_ID>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/admin\/cache\/project": { + "delete": { + "summary": "Delete project cache", + "operationId": "adminDeleteProjectCache", + "tags": [ + "admin" + ], + "description": "Delete everything cached for a project. Send the request to the project's region.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "cache", + "demo": "admin\/delete-project-cache.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "console", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "query" + } + ] + } + }, + "\/admin\/cache\/project\/resources": { + "delete": { + "summary": "Delete project resource cache", + "operationId": "adminDeleteProjectResourceCache", + "tags": [ + "admin" + ], + "description": "Delete the cache of one project resource, or of every resource of a type. Send the request to the project's region.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "cache", + "demo": "admin\/delete-project-resource-cache.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "console", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "query" + }, + { + "name": "resourceType", + "description": "Resource type.", + "required": true, + "schema": { + "type": "string", + "example": "users", + "title": "ProjectResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "memberships" + ], + "title": "memberships" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "deployments" + ], + "title": "deployments" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + } + ] + }, + "in": "query" + }, + { + "name": "resourceId", + "description": "Resource ID. Leave empty to delete the cache of every resource of this type.", + "required": false, + "schema": { + "type": "string", + "example": "<RESOURCE_ID>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/affiliates\/links": { + "get": { + "summary": "List affiliate links", + "operationId": "affiliatesListLinks", + "tags": [ + "affiliates" + ], + "description": "List affiliate links for the current account.\n", + "responses": { + "200": { + "description": "Affiliate links list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLinkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/list-links.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create affiliate link", + "operationId": "affiliatesCreateLink", + "tags": [ + "affiliates" + ], + "description": "Create a shareable affiliate link for the current account. Every console user is automatically in the affiliates program.\n", + "responses": { + "201": { + "description": "AffiliateLink", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLink" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/create-link.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "linkId": { + "description": "Link ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. This ID is the shareable referral code.", + "type": "string", + "example": "<LINK_ID>" + }, + "name": { + "description": "Link name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "linkId" + ] + } + } + } + } + } + }, + "\/affiliates\/links\/{linkId}": { + "get": { + "summary": "Get affiliate link", + "operationId": "affiliatesGetLink", + "tags": [ + "affiliates" + ], + "description": "Get a single affiliate link owned by the current account.\n", + "responses": { + "200": { + "description": "AffiliateLink", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateLink" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/get-link.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "linkId", + "description": "Link ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LINK_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete affiliate link", + "operationId": "affiliatesDeleteLink", + "tags": [ + "affiliates" + ], + "description": "Delete an affiliate link owned by the current account. Existing referrals and rewards keep their stored link IDs for history.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "links", + "demo": "affiliates\/delete-link.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "linkId", + "description": "Link ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LINK_ID>" + }, + "in": "path" + } + ] + } + }, + "\/affiliates\/referrals": { + "get": { + "summary": "List affiliate referrals", + "operationId": "affiliatesListReferrals", + "tags": [ + "affiliates" + ], + "description": "List referrals attributed to the current account's affiliate links. Responses include privacy-safe metadata only (truncated user ID and signup country), never email or name. Referrals are created automatically on signup when the invite cookie is present.\n", + "responses": { + "200": { + "description": "Affiliate referrals list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateReferralList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "referrals", + "demo": "affiliates\/list-referrals.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: linkId, referredUserMaskedId, referredUserCountry, status, attributedAt, expiresAt, convertedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/affiliates\/rewards": { + "get": { + "summary": "List affiliate rewards", + "operationId": "affiliatesListRewards", + "tags": [ + "affiliates" + ], + "description": "List rewards earned by the current account from affiliate link conversions.\n", + "responses": { + "200": { + "description": "Affiliate rewards list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateRewardList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rewards", + "demo": "affiliates\/list-rewards.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: linkId, referralId, amount, status, teamId, creditId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/affiliates\/rewards\/{rewardId}": { + "patch": { + "summary": "Update affiliate reward", + "operationId": "affiliatesUpdateReward", + "tags": [ + "affiliates" + ], + "description": "Claim a pending affiliate reward by setting its status to `claimed`. Creates organization credits for the target organization. The current user must be an owner of that organization.\n", + "responses": { + "200": { + "description": "AffiliateReward", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/affiliateReward" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rewards", + "demo": "affiliates\/update-reward.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "rewardId", + "description": "Reward ID", + "required": true, + "schema": { + "type": "string", + "example": "<REWARD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "New reward status. Use `claimed` to claim the reward as organization credits.", + "type": "string", + "example": "claimed" + }, + "organizationId": { + "description": "Organization ID to apply credits to when claiming.", + "type": "string", + "example": "<ORGANIZATION_ID>" + } + }, + "required": [ + "status", + "organizationId" + ] + } + } + } + } + } + }, + "\/analytics\/properties": { + "get": { + "summary": "List analytics properties", + "operationId": "analyticsListProperties", + "tags": [ + "analytics" + ], + "description": "List analytics properties for the current project.", + "responses": { + "200": { + "description": "Analytics properties list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsPropertyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/list-properties.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, domain, enabled, public", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Matches the property ID, name and domain. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create analytics property", + "operationId": "analyticsCreateProperty", + "tags": [ + "analytics" + ], + "description": "Create a new analytics property to track a website or application.", + "responses": { + "201": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/create-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "propertyId": { + "description": "Unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Max length is 36 chars.", + "type": "string", + "example": "<PROPERTY_ID>" + }, + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>" + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Optional for native apps.", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "default": true, + "example": false + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "default": false, + "example": false + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "default": [ + "*" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "propertyId", + "name" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}": { + "get": { + "summary": "Get analytics property", + "operationId": "analyticsGetProperty", + "tags": [ + "analytics" + ], + "description": "Get an analytics property by ID.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/get-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update analytics property", + "operationId": "analyticsUpdateProperty", + "tags": [ + "analytics" + ], + "description": "Update an analytics property. Only the attributes you pass are changed; omitted attributes keep their current value.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/update-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Pass an empty string to clear it.", + "type": "string", + "example": "<DOMAIN>", + "nullable": true + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "example": false, + "nullable": true + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete analytics property", + "operationId": "analyticsDeleteProperty", + "tags": [ + "analytics" + ], + "description": "Delete an analytics property along with every event and session collected for it. This cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/delete-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/analytics\/properties\/{propertyId}\/events": { + "post": { + "summary": "Track analytics event", + "operationId": "analyticsCreateEvent", + "tags": [ + "analytics" + ], + "description": "Send a tracking event from a browser, native app, or server-side SDK.", + "responses": { + "202": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "analytics\/create-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "global" + ], + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Full page URL or screen identifier.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "domain": { + "description": "Hostname (e.g. example.com).", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "referrer": { + "description": "Referrer URL.", + "type": "string", + "default": "", + "example": "<REFERRER>" + }, + "screenWidth": { + "description": "Viewport width in CSS pixels.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "sessionHash": { + "description": "Optional session hash (provided by SDK).", + "type": "string", + "default": "", + "example": "<SESSION_HASH>" + }, + "scrollDepth": { + "description": "Scroll depth percentage 0-100.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "engagementTime": { + "description": "Engagement time in seconds, 0-4294967295.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "props": { + "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "userId": { + "description": "Override user ID. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "ip": { + "description": "Override IP address. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<IP>" + }, + "userAgent": { + "description": "Override user agent. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + } + }, + "required": [ + "name", + "url" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}\/metrics": { + "get": { + "summary": "List analytics metrics for a property", + "operationId": "analyticsListMetrics", + "tags": [ + "analytics" + ], + "description": "Read analytics metrics (visitors, sessions, pageviews, events, bounceRate, \u2026) for a property over a date range.\n\n**Three response shapes**, chosen by `dimensions[]` and `interval`:\n- Neither: one row aggregating the whole window, with `value` and `date` null. Only this shape carries `pageviews`, `visits`, `bounceRate`, `visitDuration`, `viewsPerVisit`, `scrollDepth` and `engagementTime`.\n- `dimensions[]`: one row per dimension value, ranked by visitors, with `value` set and `date` null.\n- `interval`: one row per time bucket in chronological order, with `date` set and `value` null.\n\nCombining `dimensions[]` with `interval` is not supported yet. `queries[]` filters the underlying events using standard Utopia query syntax.", + "responses": { + "200": { + "description": "AnalyticsMetricList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsMetricList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "metrics", + "demo": "analytics\/list-metrics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, botName, botCategory, eventName. page, eventName are only accepted alongside `interval`, or with a breakdown on a dimension other than entryPage, exitPage. Allowed methods: equal, notEqual, contains, startsWith, endsWith. Example: `queries[]=equal(\"country\", [\"US\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time bucket size. Omit (null) for a flat aggregate over the whole window. Allowed: 1h, 1d, 1w, 1m.", + "required": false, + "schema": { + "type": "string", + "example": "1h", + "title": "AnalyticsInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + }, + { + "type": "string", + "enum": [ + "1w" + ], + "title": "One Week" + }, + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Month" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Dimension to break the metrics down by. One at most for now; the parameter is a list so that cap can be raised without a breaking change. Allowed: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, entryPage, exitPage, trafficType, botName, botCategory, eventName.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "AnalyticsDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "country" + ], + "title": "country" + }, + { + "type": "string", + "enum": [ + "region" + ], + "title": "region" + }, + { + "type": "string", + "enum": [ + "city" + ], + "title": "city" + }, + { + "type": "string", + "enum": [ + "browser" + ], + "title": "browser" + }, + { + "type": "string", + "enum": [ + "operatingSystem" + ], + "title": "operatingSystem" + }, + { + "type": "string", + "enum": [ + "device" + ], + "title": "device" + }, + { + "type": "string", + "enum": [ + "screenSize" + ], + "title": "screenSize" + }, + { + "type": "string", + "enum": [ + "referrerSource" + ], + "title": "referrerSource" + }, + { + "type": "string", + "enum": [ + "channel" + ], + "title": "channel" + }, + { + "type": "string", + "enum": [ + "utmSource" + ], + "title": "utmSource" + }, + { + "type": "string", + "enum": [ + "utmMedium" + ], + "title": "utmMedium" + }, + { + "type": "string", + "enum": [ + "utmCampaign" + ], + "title": "utmCampaign" + }, + { + "type": "string", + "enum": [ + "utmContent" + ], + "title": "utmContent" + }, + { + "type": "string", + "enum": [ + "utmTerm" + ], + "title": "utmTerm" + }, + { + "type": "string", + "enum": [ + "page" + ], + "title": "page" + }, + { + "type": "string", + "enum": [ + "hostname" + ], + "title": "hostname" + }, + { + "type": "string", + "enum": [ + "entryPage" + ], + "title": "entryPage" + }, + { + "type": "string", + "enum": [ + "exitPage" + ], + "title": "exitPage" + }, + { + "type": "string", + "enum": [ + "trafficType" + ], + "title": "trafficType" + }, + { + "type": "string", + "enum": [ + "botName" + ], + "title": "botName" + }, + { + "type": "string", + "enum": [ + "botCategory" + ], + "title": "botCategory" + }, + { + "type": "string", + "enum": [ + "eventName" + ], + "title": "eventName" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "dateRange", + "description": "Date range shorthand (e.g. 7d, 30d). Ignored for any bound you supply explicitly via startAt\/endAt.", + "required": false, + "schema": { + "type": "string", + "example": "<DATE_RANGE>", + "default": "30d" + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Explicit window start in ISO 8601. Defaults to endAt minus dateRange.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Explicit window end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of ranked values to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 100 + }, + "in": "query" + } + ] + } + }, + "\/apps": { + "get": { + "summary": "List Applications", + "operationId": "appsList", + "tags": [ + "apps" + ], + "description": "List applications.", + "responses": { + "200": { + "description": "Apps list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/list.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Application", + "operationId": "appsCreate", + "tags": [ + "apps" + ], + "description": "Create a new application.", + "responses": { + "201": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/create.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<APP_ID>" + }, + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "teamId": { + "description": "Team unique ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + } + }, + "required": [ + "appId", + "name", + "redirectUris" + ] + } + } + } + } + } + }, + "\/apps\/scopes\/installations": { + "get": { + "summary": "List Installation Scopes", + "operationId": "appsListInstallationScopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request when installed on a team.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-installation-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/scopes\/oauth2": { + "get": { + "summary": "List OAuth2 Scopes", + "operationId": "appsListOAuth2Scopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request during the OAuth2 flow.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-o-auth-2-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/{appId}": { + "get": { + "summary": "Get Application", + "operationId": "appsGet", + "tags": [ + "apps" + ], + "description": "Get an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/get.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Application", + "operationId": "appsUpdate", + "tags": [ + "apps" + ], + "description": "Update an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "installationScopes": { + "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationRedirectUrl": { + "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete Application", + "operationId": "appsDelete", + "tags": [ + "apps" + ], + "description": "Delete an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "appsListInstallations", + "tags": [ + "apps" + ], + "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "appsGetInstallation", + "tags": [ + "apps" + ], + "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Installation", + "operationId": "appsDeleteInstallation", + "tags": [ + "apps" + ], + "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}\/tokens": { + "post": { + "summary": "Create Installation Token", + "operationId": "appsCreateInstallationToken", + "tags": [ + "apps" + ], + "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", + "responses": { + "201": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/create-installation-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.write", + "apps.tokens.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys": { + "get": { + "summary": "List App Keys", + "operationId": "appsListKeys", + "tags": [ + "apps" + ], + "description": "List app keys for an application.", + "responses": { + "200": { + "description": "App keys list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/list-keys.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create App Key", + "operationId": "appsCreateKey", + "tags": [ + "apps" + ], + "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", + "responses": { + "201": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/create-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys\/{keyId}": { + "get": { + "summary": "Get App Key", + "operationId": "appsGetKey", + "tags": [ + "apps" + ], + "description": "Get an app key by its unique ID.", + "responses": { + "200": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/get-key.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete App Key", + "operationId": "appsDeleteKey", + "tags": [ + "apps" + ], + "description": "Delete an app key by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/delete-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/labels": { + "put": { + "summary": "Update Application Labels", + "operationId": "appsUpdateLabels", + "tags": [ + "apps" + ], + "description": "Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-labels.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long. Reserved labels are rejected.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/secrets": { + "get": { + "summary": "List Secrets", + "operationId": "appsListSecrets", + "tags": [ + "apps" + ], + "description": "List client secrets for an application.", + "responses": { + "200": { + "description": "App secrets list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/list-secrets.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Secret", + "operationId": "appsCreateSecret", + "tags": [ + "apps" + ], + "description": "Create a new client secret for an application.", + "responses": { + "201": { + "description": "AppSecretPlaintext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretPlaintext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/create-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets\/{secretId}": { + "get": { + "summary": "Get Secret", + "operationId": "appsGetSecret", + "tags": [ + "apps" + ], + "description": "Get an application client secret by its unique ID.", + "responses": { + "200": { + "description": "AppSecret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/get-secret.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Secret", + "operationId": "appsDeleteSecret", + "tags": [ + "apps" + ], + "description": "Delete an application client secret by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/delete-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/team": { + "patch": { + "summary": "Update Team", + "operationId": "appsUpdateTeam", + "tags": [ + "apps" + ], + "description": "Transfer an application to another team by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-team.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer application to.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/tokens": { + "delete": { + "summary": "Delete Tokens", + "operationId": "appsDeleteTokens", + "tags": [ + "apps" + ], + "description": "Revoke all tokens for an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete-tokens.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/avatars\/browsers\/{code}": { + "get": { + "summary": "Get browser icon", + "operationId": "avatarsGetBrowser", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-browser.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Browser Code.", + "required": true, + "schema": { + "type": "string", + "example": "aa", + "title": "Browser", + "oneOf": [ + { + "type": "string", + "enum": [ + "aa" + ], + "title": "Avant Browser" + }, + { + "type": "string", + "enum": [ + "an" + ], + "title": "Android WebView Beta" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Google Chrome" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "Google Chrome (iOS)" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Google Chrome (Mobile)" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Chromium" + }, + { + "type": "string", + "enum": [ + "ff" + ], + "title": "Mozilla Firefox" + }, + { + "type": "string", + "enum": [ + "sf" + ], + "title": "Safari" + }, + { + "type": "string", + "enum": [ + "mf" + ], + "title": "Mobile Safari" + }, + { + "type": "string", + "enum": [ + "ps" + ], + "title": "Microsoft Edge" + }, + { + "type": "string", + "enum": [ + "oi" + ], + "title": "Microsoft Edge (iOS)" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Opera Mini" + }, + { + "type": "string", + "enum": [ + "op" + ], + "title": "Opera" + }, + { + "type": "string", + "enum": [ + "on" + ], + "title": "Opera (Next)" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/credit-cards\/{code}": { + "get": { + "summary": "Get credit card icon", + "operationId": "avatarsGetCreditCard", + "tags": [ + "avatars" + ], + "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-credit-card.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", + "required": true, + "schema": { + "type": "string", + "example": "amex", + "title": "CreditCard", + "oneOf": [ + { + "type": "string", + "enum": [ + "amex" + ], + "title": "American Express" + }, + { + "type": "string", + "enum": [ + "argencard" + ], + "title": "Argencard" + }, + { + "type": "string", + "enum": [ + "cabal" + ], + "title": "Cabal" + }, + { + "type": "string", + "enum": [ + "cencosud" + ], + "title": "Cencosud" + }, + { + "type": "string", + "enum": [ + "diners" + ], + "title": "Diners Club" + }, + { + "type": "string", + "enum": [ + "discover" + ], + "title": "Discover" + }, + { + "type": "string", + "enum": [ + "elo" + ], + "title": "Elo" + }, + { + "type": "string", + "enum": [ + "hipercard" + ], + "title": "Hipercard" + }, + { + "type": "string", + "enum": [ + "jcb" + ], + "title": "JCB" + }, + { + "type": "string", + "enum": [ + "mastercard" + ], + "title": "Mastercard" + }, + { + "type": "string", + "enum": [ + "naranja" + ], + "title": "Naranja" + }, + { + "type": "string", + "enum": [ + "targeta-shopping" + ], + "title": "Tarjeta Shopping" + }, + { + "type": "string", + "enum": [ + "unionpay" + ], + "title": "Union Pay" + }, + { + "type": "string", + "enum": [ + "visa" + ], + "title": "Visa" + }, + { + "type": "string", + "enum": [ + "mir" + ], + "title": "MIR" + }, + { + "type": "string", + "enum": [ + "maestro" + ], + "title": "Maestro" + }, + { + "type": "string", + "enum": [ + "rupay" + ], + "title": "Rupay" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/favicon": { + "get": { + "summary": "Get favicon", + "operationId": "avatarsGetFavicon", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-favicon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to fetch the favicon from.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/flags\/{code}": { + "get": { + "summary": "Get country flag", + "operationId": "avatarsGetFlag", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-flag.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Country Code. ISO Alpha-2 country code format.", + "required": true, + "schema": { + "type": "string", + "example": "af", + "title": "Flag", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "Afghanistan" + }, + { + "type": "string", + "enum": [ + "ao" + ], + "title": "Angola" + }, + { + "type": "string", + "enum": [ + "al" + ], + "title": "Albania" + }, + { + "type": "string", + "enum": [ + "ad" + ], + "title": "Andorra" + }, + { + "type": "string", + "enum": [ + "ae" + ], + "title": "United Arab Emirates" + }, + { + "type": "string", + "enum": [ + "ar" + ], + "title": "Argentina" + }, + { + "type": "string", + "enum": [ + "am" + ], + "title": "Armenia" + }, + { + "type": "string", + "enum": [ + "ag" + ], + "title": "Antigua and Barbuda" + }, + { + "type": "string", + "enum": [ + "au" + ], + "title": "Australia" + }, + { + "type": "string", + "enum": [ + "at" + ], + "title": "Austria" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "Azerbaijan" + }, + { + "type": "string", + "enum": [ + "bi" + ], + "title": "Burundi" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "Belgium" + }, + { + "type": "string", + "enum": [ + "bj" + ], + "title": "Benin" + }, + { + "type": "string", + "enum": [ + "bf" + ], + "title": "Burkina Faso" + }, + { + "type": "string", + "enum": [ + "bd" + ], + "title": "Bangladesh" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "Bulgaria" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "Bahrain" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "Bahamas" + }, + { + "type": "string", + "enum": [ + "ba" + ], + "title": "Bosnia and Herzegovina" + }, + { + "type": "string", + "enum": [ + "by" + ], + "title": "Belarus" + }, + { + "type": "string", + "enum": [ + "bz" + ], + "title": "Belize" + }, + { + "type": "string", + "enum": [ + "bo" + ], + "title": "Bolivia" + }, + { + "type": "string", + "enum": [ + "br" + ], + "title": "Brazil" + }, + { + "type": "string", + "enum": [ + "bb" + ], + "title": "Barbados" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "Brunei Darussalam" + }, + { + "type": "string", + "enum": [ + "bt" + ], + "title": "Bhutan" + }, + { + "type": "string", + "enum": [ + "bw" + ], + "title": "Botswana" + }, + { + "type": "string", + "enum": [ + "cf" + ], + "title": "Central African Republic" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "Canada" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Switzerland" + }, + { + "type": "string", + "enum": [ + "cl" + ], + "title": "Chile" + }, + { + "type": "string", + "enum": [ + "cn" + ], + "title": "China" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "C\u00f4te d'Ivoire" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Cameroon" + }, + { + "type": "string", + "enum": [ + "cd" + ], + "title": "Democratic Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "cg" + ], + "title": "Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "co" + ], + "title": "Colombia" + }, + { + "type": "string", + "enum": [ + "km" + ], + "title": "Comoros" + }, + { + "type": "string", + "enum": [ + "cv" + ], + "title": "Cape Verde" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Costa Rica" + }, + { + "type": "string", + "enum": [ + "cu" + ], + "title": "Cuba" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "Cyprus" + }, + { + "type": "string", + "enum": [ + "cz" + ], + "title": "Czech Republic" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "Germany" + }, + { + "type": "string", + "enum": [ + "dj" + ], + "title": "Djibouti" + }, + { + "type": "string", + "enum": [ + "dm" + ], + "title": "Dominica" + }, + { + "type": "string", + "enum": [ + "dk" + ], + "title": "Denmark" + }, + { + "type": "string", + "enum": [ + "do" + ], + "title": "Dominican Republic" + }, + { + "type": "string", + "enum": [ + "dz" + ], + "title": "Algeria" + }, + { + "type": "string", + "enum": [ + "ec" + ], + "title": "Ecuador" + }, + { + "type": "string", + "enum": [ + "eg" + ], + "title": "Egypt" + }, + { + "type": "string", + "enum": [ + "er" + ], + "title": "Eritrea" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "Spain" + }, + { + "type": "string", + "enum": [ + "ee" + ], + "title": "Estonia" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "Ethiopia" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "Finland" + }, + { + "type": "string", + "enum": [ + "fj" + ], + "title": "Fiji" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "France" + }, + { + "type": "string", + "enum": [ + "fm" + ], + "title": "Micronesia (Federated States of)" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "Gabon" + }, + { + "type": "string", + "enum": [ + "gb" + ], + "title": "United Kingdom" + }, + { + "type": "string", + "enum": [ + "ge" + ], + "title": "Georgia" + }, + { + "type": "string", + "enum": [ + "gh" + ], + "title": "Ghana" + }, + { + "type": "string", + "enum": [ + "gn" + ], + "title": "Guinea" + }, + { + "type": "string", + "enum": [ + "gm" + ], + "title": "Gambia" + }, + { + "type": "string", + "enum": [ + "gw" + ], + "title": "Guinea-Bissau" + }, + { + "type": "string", + "enum": [ + "gq" + ], + "title": "Equatorial Guinea" + }, + { + "type": "string", + "enum": [ + "gr" + ], + "title": "Greece" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "Grenada" + }, + { + "type": "string", + "enum": [ + "gt" + ], + "title": "Guatemala" + }, + { + "type": "string", + "enum": [ + "gy" + ], + "title": "Guyana" + }, + { + "type": "string", + "enum": [ + "hn" + ], + "title": "Honduras" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "Croatia" + }, + { + "type": "string", + "enum": [ + "ht" + ], + "title": "Haiti" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "Hungary" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "Indonesia" + }, + { + "type": "string", + "enum": [ + "in" + ], + "title": "India" + }, + { + "type": "string", + "enum": [ + "ie" + ], + "title": "Ireland" + }, + { + "type": "string", + "enum": [ + "ir" + ], + "title": "Iran (Islamic Republic of)" + }, + { + "type": "string", + "enum": [ + "iq" + ], + "title": "Iraq" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "Iceland" + }, + { + "type": "string", + "enum": [ + "il" + ], + "title": "Israel" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "Italy" + }, + { + "type": "string", + "enum": [ + "jm" + ], + "title": "Jamaica" + }, + { + "type": "string", + "enum": [ + "jo" + ], + "title": "Jordan" + }, + { + "type": "string", + "enum": [ + "jp" + ], + "title": "Japan" + }, + { + "type": "string", + "enum": [ + "kz" + ], + "title": "Kazakhstan" + }, + { + "type": "string", + "enum": [ + "ke" + ], + "title": "Kenya" + }, + { + "type": "string", + "enum": [ + "kg" + ], + "title": "Kyrgyzstan" + }, + { + "type": "string", + "enum": [ + "kh" + ], + "title": "Cambodia" + }, + { + "type": "string", + "enum": [ + "ki" + ], + "title": "Kiribati" + }, + { + "type": "string", + "enum": [ + "kn" + ], + "title": "Saint Kitts and Nevis" + }, + { + "type": "string", + "enum": [ + "kr" + ], + "title": "South Korea" + }, + { + "type": "string", + "enum": [ + "kw" + ], + "title": "Kuwait" + }, + { + "type": "string", + "enum": [ + "la" + ], + "title": "Lao People's Democratic Republic" + }, + { + "type": "string", + "enum": [ + "lb" + ], + "title": "Lebanon" + }, + { + "type": "string", + "enum": [ + "lr" + ], + "title": "Liberia" + }, + { + "type": "string", + "enum": [ + "ly" + ], + "title": "Libya" + }, + { + "type": "string", + "enum": [ + "lc" + ], + "title": "Saint Lucia" + }, + { + "type": "string", + "enum": [ + "li" + ], + "title": "Liechtenstein" + }, + { + "type": "string", + "enum": [ + "lk" + ], + "title": "Sri Lanka" + }, + { + "type": "string", + "enum": [ + "ls" + ], + "title": "Lesotho" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "Lithuania" + }, + { + "type": "string", + "enum": [ + "lu" + ], + "title": "Luxembourg" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "Latvia" + }, + { + "type": "string", + "enum": [ + "ma" + ], + "title": "Morocco" + }, + { + "type": "string", + "enum": [ + "mc" + ], + "title": "Monaco" + }, + { + "type": "string", + "enum": [ + "md" + ], + "title": "Moldova" + }, + { + "type": "string", + "enum": [ + "mg" + ], + "title": "Madagascar" + }, + { + "type": "string", + "enum": [ + "mv" + ], + "title": "Maldives" + }, + { + "type": "string", + "enum": [ + "mx" + ], + "title": "Mexico" + }, + { + "type": "string", + "enum": [ + "mh" + ], + "title": "Marshall Islands" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "North Macedonia" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "Mali" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "Malta" + }, + { + "type": "string", + "enum": [ + "mm" + ], + "title": "Myanmar" + }, + { + "type": "string", + "enum": [ + "me" + ], + "title": "Montenegro" + }, + { + "type": "string", + "enum": [ + "mn" + ], + "title": "Mongolia" + }, + { + "type": "string", + "enum": [ + "mz" + ], + "title": "Mozambique" + }, + { + "type": "string", + "enum": [ + "mr" + ], + "title": "Mauritania" + }, + { + "type": "string", + "enum": [ + "mu" + ], + "title": "Mauritius" + }, + { + "type": "string", + "enum": [ + "mw" + ], + "title": "Malawi" + }, + { + "type": "string", + "enum": [ + "my" + ], + "title": "Malaysia" + }, + { + "type": "string", + "enum": [ + "na" + ], + "title": "Namibia" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "Niger" + }, + { + "type": "string", + "enum": [ + "ng" + ], + "title": "Nigeria" + }, + { + "type": "string", + "enum": [ + "ni" + ], + "title": "Nicaragua" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "Netherlands" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "Norway" + }, + { + "type": "string", + "enum": [ + "np" + ], + "title": "Nepal" + }, + { + "type": "string", + "enum": [ + "nr" + ], + "title": "Nauru" + }, + { + "type": "string", + "enum": [ + "nz" + ], + "title": "New Zealand" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Oman" + }, + { + "type": "string", + "enum": [ + "pk" + ], + "title": "Pakistan" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "Panama" + }, + { + "type": "string", + "enum": [ + "pe" + ], + "title": "Peru" + }, + { + "type": "string", + "enum": [ + "ph" + ], + "title": "Philippines" + }, + { + "type": "string", + "enum": [ + "pw" + ], + "title": "Palau" + }, + { + "type": "string", + "enum": [ + "pg" + ], + "title": "Papua New Guinea" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "Poland" + }, + { + "type": "string", + "enum": [ + "pf" + ], + "title": "French Polynesia" + }, + { + "type": "string", + "enum": [ + "kp" + ], + "title": "North Korea" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "Portugal" + }, + { + "type": "string", + "enum": [ + "py" + ], + "title": "Paraguay" + }, + { + "type": "string", + "enum": [ + "qa" + ], + "title": "Qatar" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "Romania" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "Russia" + }, + { + "type": "string", + "enum": [ + "rw" + ], + "title": "Rwanda" + }, + { + "type": "string", + "enum": [ + "sa" + ], + "title": "Saudi Arabia" + }, + { + "type": "string", + "enum": [ + "sd" + ], + "title": "Sudan" + }, + { + "type": "string", + "enum": [ + "sn" + ], + "title": "Senegal" + }, + { + "type": "string", + "enum": [ + "sg" + ], + "title": "Singapore" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "Solomon Islands" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "Sierra Leone" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "El Salvador" + }, + { + "type": "string", + "enum": [ + "sm" + ], + "title": "San Marino" + }, + { + "type": "string", + "enum": [ + "so" + ], + "title": "Somalia" + }, + { + "type": "string", + "enum": [ + "rs" + ], + "title": "Serbia" + }, + { + "type": "string", + "enum": [ + "ss" + ], + "title": "South Sudan" + }, + { + "type": "string", + "enum": [ + "st" + ], + "title": "Sao Tome and Principe" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "Suriname" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "Slovakia" + }, + { + "type": "string", + "enum": [ + "si" + ], + "title": "Slovenia" + }, + { + "type": "string", + "enum": [ + "se" + ], + "title": "Sweden" + }, + { + "type": "string", + "enum": [ + "sz" + ], + "title": "Eswatini" + }, + { + "type": "string", + "enum": [ + "sc" + ], + "title": "Seychelles" + }, + { + "type": "string", + "enum": [ + "sy" + ], + "title": "Syria" + }, + { + "type": "string", + "enum": [ + "td" + ], + "title": "Chad" + }, + { + "type": "string", + "enum": [ + "tg" + ], + "title": "Togo" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "Thailand" + }, + { + "type": "string", + "enum": [ + "tj" + ], + "title": "Tajikistan" + }, + { + "type": "string", + "enum": [ + "tm" + ], + "title": "Turkmenistan" + }, + { + "type": "string", + "enum": [ + "tl" + ], + "title": "Timor-Leste" + }, + { + "type": "string", + "enum": [ + "to" + ], + "title": "Tonga" + }, + { + "type": "string", + "enum": [ + "tt" + ], + "title": "Trinidad and Tobago" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "Tunisia" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "Turkey" + }, + { + "type": "string", + "enum": [ + "tv" + ], + "title": "Tuvalu" + }, + { + "type": "string", + "enum": [ + "tz" + ], + "title": "Tanzania" + }, + { + "type": "string", + "enum": [ + "ug" + ], + "title": "Uganda" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "Ukraine" + }, + { + "type": "string", + "enum": [ + "uy" + ], + "title": "Uruguay" + }, + { + "type": "string", + "enum": [ + "us" + ], + "title": "United States" + }, + { + "type": "string", + "enum": [ + "uz" + ], + "title": "Uzbekistan" + }, + { + "type": "string", + "enum": [ + "va" + ], + "title": "Vatican City" + }, + { + "type": "string", + "enum": [ + "vc" + ], + "title": "Saint Vincent and the Grenadines" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "Venezuela" + }, + { + "type": "string", + "enum": [ + "vn" + ], + "title": "Vietnam" + }, + { + "type": "string", + "enum": [ + "vu" + ], + "title": "Vanuatu" + }, + { + "type": "string", + "enum": [ + "ws" + ], + "title": "Samoa" + }, + { + "type": "string", + "enum": [ + "ye" + ], + "title": "Yemen" + }, + { + "type": "string", + "enum": [ + "za" + ], + "title": "South Africa" + }, + { + "type": "string", + "enum": [ + "zm" + ], + "title": "Zambia" + }, + { + "type": "string", + "enum": [ + "zw" + ], + "title": "Zimbabwe" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/image": { + "get": { + "summary": "Get image from URL", + "operationId": "avatarsGetImage", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-image.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Image URL which you want to crop.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/initials": { + "get": { + "summary": "Get user initials", + "operationId": "avatarsGetInitials", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-initials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "background", + "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/photo": { + "get": { + "summary": "Get user photo", + "operationId": "avatarsGetPhoto", + "tags": [ + "avatars" + ], + "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-photo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "width", + "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Output image quality between 0 and 100. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output image format. Defaults to 'png'.", + "required": false, + "schema": { + "type": "string", + "example": "png", + "default": "png" + }, + "in": "query" + }, + { + "name": "rating", + "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", + "required": false, + "schema": { + "type": "string", + "example": "g", + "default": "g" + }, + "in": "query" + }, + { + "name": "userId", + "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", + "required": false, + "schema": { + "type": "string", + "example": "current()", + "default": "" + }, + "in": "query" + }, + { + "name": "emailHash", + "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", + "required": false, + "schema": { + "type": "string", + "example": "<EMAIL_HASH>", + "default": "" + }, + "in": "query" + }, + { + "name": "name", + "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Update photo", + "operationId": "avatarsUpdatePhoto", + "tags": [ + "avatars" + ], + "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", + "responses": { + "200": { + "description": "Account", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/account" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/update-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "file" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete photo", + "operationId": "avatarsDeletePhoto", + "tags": [ + "avatars" + ], + "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/delete-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/avatars\/qr": { + "get": { + "summary": "Get QR code", + "operationId": "avatarsGetQR", + "tags": [ + "avatars" + ], + "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-qr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "text", + "description": "Plain text to be converted to QR code image.", + "required": true, + "schema": { + "type": "string", + "example": "<TEXT>" + }, + "in": "query" + }, + { + "name": "size", + "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 400 + }, + "in": "query" + }, + { + "name": "margin", + "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "download", + "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + } + ] + } + }, + "\/avatars\/screenshots": { + "get": { + "summary": "Get webpage screenshot", + "operationId": "avatarsGetScreenshot", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-screenshot.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to capture.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "headers", + "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", + "required": false, + "schema": { + "type": "object", + "default": {}, + "example": { + "Accept-Language": "en-US,en;q=0.9" + } + }, + "in": "query" + }, + { + "name": "viewportWidth", + "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1920, + "default": 1280 + }, + "in": "query" + }, + { + "name": "viewportHeight", + "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1080, + "default": 720 + }, + "in": "query" + }, + { + "name": "scale", + "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 2, + "default": 1 + }, + "in": "query" + }, + { + "name": "theme", + "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", + "required": false, + "schema": { + "type": "string", + "example": "dark", + "title": "BrowserTheme", + "oneOf": [ + { + "type": "string", + "enum": [ + "light" + ], + "title": "light" + }, + { + "type": "string", + "enum": [ + "dark" + ], + "title": "dark" + } + ], + "default": "light" + }, + "in": "query" + }, + { + "name": "userAgent", + "description": "Custom user agent string. Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", + "default": "" + }, + "in": "query" + }, + { + "name": "fullpage", + "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "locale", + "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "en-US", + "default": "" + }, + "in": "query" + }, + { + "name": "timezone", + "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "America\/New_York", + "title": "Timezone", + "oneOf": [ + { + "type": "string", + "enum": [ + "africa\/abidjan" + ], + "title": "africa\/abidjan" + }, + { + "type": "string", + "enum": [ + "africa\/accra" + ], + "title": "africa\/accra" + }, + { + "type": "string", + "enum": [ + "africa\/addis_ababa" + ], + "title": "africa\/addis_ababa" + }, + { + "type": "string", + "enum": [ + "africa\/algiers" + ], + "title": "africa\/algiers" + }, + { + "type": "string", + "enum": [ + "africa\/asmara" + ], + "title": "africa\/asmara" + }, + { + "type": "string", + "enum": [ + "africa\/bamako" + ], + "title": "africa\/bamako" + }, + { + "type": "string", + "enum": [ + "africa\/bangui" + ], + "title": "africa\/bangui" + }, + { + "type": "string", + "enum": [ + "africa\/banjul" + ], + "title": "africa\/banjul" + }, + { + "type": "string", + "enum": [ + "africa\/bissau" + ], + "title": "africa\/bissau" + }, + { + "type": "string", + "enum": [ + "africa\/blantyre" + ], + "title": "africa\/blantyre" + }, + { + "type": "string", + "enum": [ + "africa\/brazzaville" + ], + "title": "africa\/brazzaville" + }, + { + "type": "string", + "enum": [ + "africa\/bujumbura" + ], + "title": "africa\/bujumbura" + }, + { + "type": "string", + "enum": [ + "africa\/cairo" + ], + "title": "africa\/cairo" + }, + { + "type": "string", + "enum": [ + "africa\/casablanca" + ], + "title": "africa\/casablanca" + }, + { + "type": "string", + "enum": [ + "africa\/ceuta" + ], + "title": "africa\/ceuta" + }, + { + "type": "string", + "enum": [ + "africa\/conakry" + ], + "title": "africa\/conakry" + }, + { + "type": "string", + "enum": [ + "africa\/dakar" + ], + "title": "africa\/dakar" + }, + { + "type": "string", + "enum": [ + "africa\/dar_es_salaam" + ], + "title": "africa\/dar_es_salaam" + }, + { + "type": "string", + "enum": [ + "africa\/djibouti" + ], + "title": "africa\/djibouti" + }, + { + "type": "string", + "enum": [ + "africa\/douala" + ], + "title": "africa\/douala" + }, + { + "type": "string", + "enum": [ + "africa\/el_aaiun" + ], + "title": "africa\/el_aaiun" + }, + { + "type": "string", + "enum": [ + "africa\/freetown" + ], + "title": "africa\/freetown" + }, + { + "type": "string", + "enum": [ + "africa\/gaborone" + ], + "title": "africa\/gaborone" + }, + { + "type": "string", + "enum": [ + "africa\/harare" + ], + "title": "africa\/harare" + }, + { + "type": "string", + "enum": [ + "africa\/johannesburg" + ], + "title": "africa\/johannesburg" + }, + { + "type": "string", + "enum": [ + "africa\/juba" + ], + "title": "africa\/juba" + }, + { + "type": "string", + "enum": [ + "africa\/kampala" + ], + "title": "africa\/kampala" + }, + { + "type": "string", + "enum": [ + "africa\/khartoum" + ], + "title": "africa\/khartoum" + }, + { + "type": "string", + "enum": [ + "africa\/kigali" + ], + "title": "africa\/kigali" + }, + { + "type": "string", + "enum": [ + "africa\/kinshasa" + ], + "title": "africa\/kinshasa" + }, + { + "type": "string", + "enum": [ + "africa\/lagos" + ], + "title": "africa\/lagos" + }, + { + "type": "string", + "enum": [ + "africa\/libreville" + ], + "title": "africa\/libreville" + }, + { + "type": "string", + "enum": [ + "africa\/lome" + ], + "title": "africa\/lome" + }, + { + "type": "string", + "enum": [ + "africa\/luanda" + ], + "title": "africa\/luanda" + }, + { + "type": "string", + "enum": [ + "africa\/lubumbashi" + ], + "title": "africa\/lubumbashi" + }, + { + "type": "string", + "enum": [ + "africa\/lusaka" + ], + "title": "africa\/lusaka" + }, + { + "type": "string", + "enum": [ + "africa\/malabo" + ], + "title": "africa\/malabo" + }, + { + "type": "string", + "enum": [ + "africa\/maputo" + ], + "title": "africa\/maputo" + }, + { + "type": "string", + "enum": [ + "africa\/maseru" + ], + "title": "africa\/maseru" + }, + { + "type": "string", + "enum": [ + "africa\/mbabane" + ], + "title": "africa\/mbabane" + }, + { + "type": "string", + "enum": [ + "africa\/mogadishu" + ], + "title": "africa\/mogadishu" + }, + { + "type": "string", + "enum": [ + "africa\/monrovia" + ], + "title": "africa\/monrovia" + }, + { + "type": "string", + "enum": [ + "africa\/nairobi" + ], + "title": "africa\/nairobi" + }, + { + "type": "string", + "enum": [ + "africa\/ndjamena" + ], + "title": "africa\/ndjamena" + }, + { + "type": "string", + "enum": [ + "africa\/niamey" + ], + "title": "africa\/niamey" + }, + { + "type": "string", + "enum": [ + "africa\/nouakchott" + ], + "title": "africa\/nouakchott" + }, + { + "type": "string", + "enum": [ + "africa\/ouagadougou" + ], + "title": "africa\/ouagadougou" + }, + { + "type": "string", + "enum": [ + "africa\/porto-novo" + ], + "title": "africa\/porto-novo" + }, + { + "type": "string", + "enum": [ + "africa\/sao_tome" + ], + "title": "africa\/sao_tome" + }, + { + "type": "string", + "enum": [ + "africa\/tripoli" + ], + "title": "africa\/tripoli" + }, + { + "type": "string", + "enum": [ + "africa\/tunis" + ], + "title": "africa\/tunis" + }, + { + "type": "string", + "enum": [ + "africa\/windhoek" + ], + "title": "africa\/windhoek" + }, + { + "type": "string", + "enum": [ + "america\/adak" + ], + "title": "america\/adak" + }, + { + "type": "string", + "enum": [ + "america\/anchorage" + ], + "title": "america\/anchorage" + }, + { + "type": "string", + "enum": [ + "america\/anguilla" + ], + "title": "america\/anguilla" + }, + { + "type": "string", + "enum": [ + "america\/antigua" + ], + "title": "america\/antigua" + }, + { + "type": "string", + "enum": [ + "america\/araguaina" + ], + "title": "america\/araguaina" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/buenos_aires" + ], + "title": "america\/argentina\/buenos_aires" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/catamarca" + ], + "title": "america\/argentina\/catamarca" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/cordoba" + ], + "title": "america\/argentina\/cordoba" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/jujuy" + ], + "title": "america\/argentina\/jujuy" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/la_rioja" + ], + "title": "america\/argentina\/la_rioja" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/mendoza" + ], + "title": "america\/argentina\/mendoza" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/rio_gallegos" + ], + "title": "america\/argentina\/rio_gallegos" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/salta" + ], + "title": "america\/argentina\/salta" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_juan" + ], + "title": "america\/argentina\/san_juan" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_luis" + ], + "title": "america\/argentina\/san_luis" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/tucuman" + ], + "title": "america\/argentina\/tucuman" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/ushuaia" + ], + "title": "america\/argentina\/ushuaia" + }, + { + "type": "string", + "enum": [ + "america\/aruba" + ], + "title": "america\/aruba" + }, + { + "type": "string", + "enum": [ + "america\/asuncion" + ], + "title": "america\/asuncion" + }, + { + "type": "string", + "enum": [ + "america\/atikokan" + ], + "title": "america\/atikokan" + }, + { + "type": "string", + "enum": [ + "america\/bahia" + ], + "title": "america\/bahia" + }, + { + "type": "string", + "enum": [ + "america\/bahia_banderas" + ], + "title": "america\/bahia_banderas" + }, + { + "type": "string", + "enum": [ + "america\/barbados" + ], + "title": "america\/barbados" + }, + { + "type": "string", + "enum": [ + "america\/belem" + ], + "title": "america\/belem" + }, + { + "type": "string", + "enum": [ + "america\/belize" + ], + "title": "america\/belize" + }, + { + "type": "string", + "enum": [ + "america\/blanc-sablon" + ], + "title": "america\/blanc-sablon" + }, + { + "type": "string", + "enum": [ + "america\/boa_vista" + ], + "title": "america\/boa_vista" + }, + { + "type": "string", + "enum": [ + "america\/bogota" + ], + "title": "america\/bogota" + }, + { + "type": "string", + "enum": [ + "america\/boise" + ], + "title": "america\/boise" + }, + { + "type": "string", + "enum": [ + "america\/cambridge_bay" + ], + "title": "america\/cambridge_bay" + }, + { + "type": "string", + "enum": [ + "america\/campo_grande" + ], + "title": "america\/campo_grande" + }, + { + "type": "string", + "enum": [ + "america\/cancun" + ], + "title": "america\/cancun" + }, + { + "type": "string", + "enum": [ + "america\/caracas" + ], + "title": "america\/caracas" + }, + { + "type": "string", + "enum": [ + "america\/cayenne" + ], + "title": "america\/cayenne" + }, + { + "type": "string", + "enum": [ + "america\/cayman" + ], + "title": "america\/cayman" + }, + { + "type": "string", + "enum": [ + "america\/chicago" + ], + "title": "america\/chicago" + }, + { + "type": "string", + "enum": [ + "america\/chihuahua" + ], + "title": "america\/chihuahua" + }, + { + "type": "string", + "enum": [ + "america\/ciudad_juarez" + ], + "title": "america\/ciudad_juarez" + }, + { + "type": "string", + "enum": [ + "america\/costa_rica" + ], + "title": "america\/costa_rica" + }, + { + "type": "string", + "enum": [ + "america\/coyhaique" + ], + "title": "america\/coyhaique" + }, + { + "type": "string", + "enum": [ + "america\/creston" + ], + "title": "america\/creston" + }, + { + "type": "string", + "enum": [ + "america\/cuiaba" + ], + "title": "america\/cuiaba" + }, + { + "type": "string", + "enum": [ + "america\/curacao" + ], + "title": "america\/curacao" + }, + { + "type": "string", + "enum": [ + "america\/danmarkshavn" + ], + "title": "america\/danmarkshavn" + }, + { + "type": "string", + "enum": [ + "america\/dawson" + ], + "title": "america\/dawson" + }, + { + "type": "string", + "enum": [ + "america\/dawson_creek" + ], + "title": "america\/dawson_creek" + }, + { + "type": "string", + "enum": [ + "america\/denver" + ], + "title": "america\/denver" + }, + { + "type": "string", + "enum": [ + "america\/detroit" + ], + "title": "america\/detroit" + }, + { + "type": "string", + "enum": [ + "america\/dominica" + ], + "title": "america\/dominica" + }, + { + "type": "string", + "enum": [ + "america\/edmonton" + ], + "title": "america\/edmonton" + }, + { + "type": "string", + "enum": [ + "america\/eirunepe" + ], + "title": "america\/eirunepe" + }, + { + "type": "string", + "enum": [ + "america\/el_salvador" + ], + "title": "america\/el_salvador" + }, + { + "type": "string", + "enum": [ + "america\/fort_nelson" + ], + "title": "america\/fort_nelson" + }, + { + "type": "string", + "enum": [ + "america\/fortaleza" + ], + "title": "america\/fortaleza" + }, + { + "type": "string", + "enum": [ + "america\/glace_bay" + ], + "title": "america\/glace_bay" + }, + { + "type": "string", + "enum": [ + "america\/goose_bay" + ], + "title": "america\/goose_bay" + }, + { + "type": "string", + "enum": [ + "america\/grand_turk" + ], + "title": "america\/grand_turk" + }, + { + "type": "string", + "enum": [ + "america\/grenada" + ], + "title": "america\/grenada" + }, + { + "type": "string", + "enum": [ + "america\/guadeloupe" + ], + "title": "america\/guadeloupe" + }, + { + "type": "string", + "enum": [ + "america\/guatemala" + ], + "title": "america\/guatemala" + }, + { + "type": "string", + "enum": [ + "america\/guayaquil" + ], + "title": "america\/guayaquil" + }, + { + "type": "string", + "enum": [ + "america\/guyana" + ], + "title": "america\/guyana" + }, + { + "type": "string", + "enum": [ + "america\/halifax" + ], + "title": "america\/halifax" + }, + { + "type": "string", + "enum": [ + "america\/havana" + ], + "title": "america\/havana" + }, + { + "type": "string", + "enum": [ + "america\/hermosillo" + ], + "title": "america\/hermosillo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/indianapolis" + ], + "title": "america\/indiana\/indianapolis" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/knox" + ], + "title": "america\/indiana\/knox" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/marengo" + ], + "title": "america\/indiana\/marengo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/petersburg" + ], + "title": "america\/indiana\/petersburg" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/tell_city" + ], + "title": "america\/indiana\/tell_city" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vevay" + ], + "title": "america\/indiana\/vevay" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vincennes" + ], + "title": "america\/indiana\/vincennes" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/winamac" + ], + "title": "america\/indiana\/winamac" + }, + { + "type": "string", + "enum": [ + "america\/inuvik" + ], + "title": "america\/inuvik" + }, + { + "type": "string", + "enum": [ + "america\/iqaluit" + ], + "title": "america\/iqaluit" + }, + { + "type": "string", + "enum": [ + "america\/jamaica" + ], + "title": "america\/jamaica" + }, + { + "type": "string", + "enum": [ + "america\/juneau" + ], + "title": "america\/juneau" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/louisville" + ], + "title": "america\/kentucky\/louisville" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/monticello" + ], + "title": "america\/kentucky\/monticello" + }, + { + "type": "string", + "enum": [ + "america\/kralendijk" + ], + "title": "america\/kralendijk" + }, + { + "type": "string", + "enum": [ + "america\/la_paz" + ], + "title": "america\/la_paz" + }, + { + "type": "string", + "enum": [ + "america\/lima" + ], + "title": "america\/lima" + }, + { + "type": "string", + "enum": [ + "america\/los_angeles" + ], + "title": "america\/los_angeles" + }, + { + "type": "string", + "enum": [ + "america\/lower_princes" + ], + "title": "america\/lower_princes" + }, + { + "type": "string", + "enum": [ + "america\/maceio" + ], + "title": "america\/maceio" + }, + { + "type": "string", + "enum": [ + "america\/managua" + ], + "title": "america\/managua" + }, + { + "type": "string", + "enum": [ + "america\/manaus" + ], + "title": "america\/manaus" + }, + { + "type": "string", + "enum": [ + "america\/marigot" + ], + "title": "america\/marigot" + }, + { + "type": "string", + "enum": [ + "america\/martinique" + ], + "title": "america\/martinique" + }, + { + "type": "string", + "enum": [ + "america\/matamoros" + ], + "title": "america\/matamoros" + }, + { + "type": "string", + "enum": [ + "america\/mazatlan" + ], + "title": "america\/mazatlan" + }, + { + "type": "string", + "enum": [ + "america\/menominee" + ], + "title": "america\/menominee" + }, + { + "type": "string", + "enum": [ + "america\/merida" + ], + "title": "america\/merida" + }, + { + "type": "string", + "enum": [ + "america\/metlakatla" + ], + "title": "america\/metlakatla" + }, + { + "type": "string", + "enum": [ + "america\/mexico_city" + ], + "title": "america\/mexico_city" + }, + { + "type": "string", + "enum": [ + "america\/miquelon" + ], + "title": "america\/miquelon" + }, + { + "type": "string", + "enum": [ + "america\/moncton" + ], + "title": "america\/moncton" + }, + { + "type": "string", + "enum": [ + "america\/monterrey" + ], + "title": "america\/monterrey" + }, + { + "type": "string", + "enum": [ + "america\/montevideo" + ], + "title": "america\/montevideo" + }, + { + "type": "string", + "enum": [ + "america\/montserrat" + ], + "title": "america\/montserrat" + }, + { + "type": "string", + "enum": [ + "america\/nassau" + ], + "title": "america\/nassau" + }, + { + "type": "string", + "enum": [ + "america\/new_york" + ], + "title": "america\/new_york" + }, + { + "type": "string", + "enum": [ + "america\/nome" + ], + "title": "america\/nome" + }, + { + "type": "string", + "enum": [ + "america\/noronha" + ], + "title": "america\/noronha" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/beulah" + ], + "title": "america\/north_dakota\/beulah" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/center" + ], + "title": "america\/north_dakota\/center" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/new_salem" + ], + "title": "america\/north_dakota\/new_salem" + }, + { + "type": "string", + "enum": [ + "america\/nuuk" + ], + "title": "america\/nuuk" + }, + { + "type": "string", + "enum": [ + "america\/ojinaga" + ], + "title": "america\/ojinaga" + }, + { + "type": "string", + "enum": [ + "america\/panama" + ], + "title": "america\/panama" + }, + { + "type": "string", + "enum": [ + "america\/paramaribo" + ], + "title": "america\/paramaribo" + }, + { + "type": "string", + "enum": [ + "america\/phoenix" + ], + "title": "america\/phoenix" + }, + { + "type": "string", + "enum": [ + "america\/port-au-prince" + ], + "title": "america\/port-au-prince" + }, + { + "type": "string", + "enum": [ + "america\/port_of_spain" + ], + "title": "america\/port_of_spain" + }, + { + "type": "string", + "enum": [ + "america\/porto_velho" + ], + "title": "america\/porto_velho" + }, + { + "type": "string", + "enum": [ + "america\/puerto_rico" + ], + "title": "america\/puerto_rico" + }, + { + "type": "string", + "enum": [ + "america\/punta_arenas" + ], + "title": "america\/punta_arenas" + }, + { + "type": "string", + "enum": [ + "america\/rankin_inlet" + ], + "title": "america\/rankin_inlet" + }, + { + "type": "string", + "enum": [ + "america\/recife" + ], + "title": "america\/recife" + }, + { + "type": "string", + "enum": [ + "america\/regina" + ], + "title": "america\/regina" + }, + { + "type": "string", + "enum": [ + "america\/resolute" + ], + "title": "america\/resolute" + }, + { + "type": "string", + "enum": [ + "america\/rio_branco" + ], + "title": "america\/rio_branco" + }, + { + "type": "string", + "enum": [ + "america\/santarem" + ], + "title": "america\/santarem" + }, + { + "type": "string", + "enum": [ + "america\/santiago" + ], + "title": "america\/santiago" + }, + { + "type": "string", + "enum": [ + "america\/santo_domingo" + ], + "title": "america\/santo_domingo" + }, + { + "type": "string", + "enum": [ + "america\/sao_paulo" + ], + "title": "america\/sao_paulo" + }, + { + "type": "string", + "enum": [ + "america\/scoresbysund" + ], + "title": "america\/scoresbysund" + }, + { + "type": "string", + "enum": [ + "america\/sitka" + ], + "title": "america\/sitka" + }, + { + "type": "string", + "enum": [ + "america\/st_barthelemy" + ], + "title": "america\/st_barthelemy" + }, + { + "type": "string", + "enum": [ + "america\/st_johns" + ], + "title": "america\/st_johns" + }, + { + "type": "string", + "enum": [ + "america\/st_kitts" + ], + "title": "america\/st_kitts" + }, + { + "type": "string", + "enum": [ + "america\/st_lucia" + ], + "title": "america\/st_lucia" + }, + { + "type": "string", + "enum": [ + "america\/st_thomas" + ], + "title": "america\/st_thomas" + }, + { + "type": "string", + "enum": [ + "america\/st_vincent" + ], + "title": "america\/st_vincent" + }, + { + "type": "string", + "enum": [ + "america\/swift_current" + ], + "title": "america\/swift_current" + }, + { + "type": "string", + "enum": [ + "america\/tegucigalpa" + ], + "title": "america\/tegucigalpa" + }, + { + "type": "string", + "enum": [ + "america\/thule" + ], + "title": "america\/thule" + }, + { + "type": "string", + "enum": [ + "america\/tijuana" + ], + "title": "america\/tijuana" + }, + { + "type": "string", + "enum": [ + "america\/toronto" + ], + "title": "america\/toronto" + }, + { + "type": "string", + "enum": [ + "america\/tortola" + ], + "title": "america\/tortola" + }, + { + "type": "string", + "enum": [ + "america\/vancouver" + ], + "title": "america\/vancouver" + }, + { + "type": "string", + "enum": [ + "america\/whitehorse" + ], + "title": "america\/whitehorse" + }, + { + "type": "string", + "enum": [ + "america\/winnipeg" + ], + "title": "america\/winnipeg" + }, + { + "type": "string", + "enum": [ + "america\/yakutat" + ], + "title": "america\/yakutat" + }, + { + "type": "string", + "enum": [ + "antarctica\/casey" + ], + "title": "antarctica\/casey" + }, + { + "type": "string", + "enum": [ + "antarctica\/davis" + ], + "title": "antarctica\/davis" + }, + { + "type": "string", + "enum": [ + "antarctica\/dumontdurville" + ], + "title": "antarctica\/dumontdurville" + }, + { + "type": "string", + "enum": [ + "antarctica\/macquarie" + ], + "title": "antarctica\/macquarie" + }, + { + "type": "string", + "enum": [ + "antarctica\/mawson" + ], + "title": "antarctica\/mawson" + }, + { + "type": "string", + "enum": [ + "antarctica\/mcmurdo" + ], + "title": "antarctica\/mcmurdo" + }, + { + "type": "string", + "enum": [ + "antarctica\/palmer" + ], + "title": "antarctica\/palmer" + }, + { + "type": "string", + "enum": [ + "antarctica\/rothera" + ], + "title": "antarctica\/rothera" + }, + { + "type": "string", + "enum": [ + "antarctica\/syowa" + ], + "title": "antarctica\/syowa" + }, + { + "type": "string", + "enum": [ + "antarctica\/troll" + ], + "title": "antarctica\/troll" + }, + { + "type": "string", + "enum": [ + "antarctica\/vostok" + ], + "title": "antarctica\/vostok" + }, + { + "type": "string", + "enum": [ + "arctic\/longyearbyen" + ], + "title": "arctic\/longyearbyen" + }, + { + "type": "string", + "enum": [ + "asia\/aden" + ], + "title": "asia\/aden" + }, + { + "type": "string", + "enum": [ + "asia\/almaty" + ], + "title": "asia\/almaty" + }, + { + "type": "string", + "enum": [ + "asia\/amman" + ], + "title": "asia\/amman" + }, + { + "type": "string", + "enum": [ + "asia\/anadyr" + ], + "title": "asia\/anadyr" + }, + { + "type": "string", + "enum": [ + "asia\/aqtau" + ], + "title": "asia\/aqtau" + }, + { + "type": "string", + "enum": [ + "asia\/aqtobe" + ], + "title": "asia\/aqtobe" + }, + { + "type": "string", + "enum": [ + "asia\/ashgabat" + ], + "title": "asia\/ashgabat" + }, + { + "type": "string", + "enum": [ + "asia\/atyrau" + ], + "title": "asia\/atyrau" + }, + { + "type": "string", + "enum": [ + "asia\/baghdad" + ], + "title": "asia\/baghdad" + }, + { + "type": "string", + "enum": [ + "asia\/bahrain" + ], + "title": "asia\/bahrain" + }, + { + "type": "string", + "enum": [ + "asia\/baku" + ], + "title": "asia\/baku" + }, + { + "type": "string", + "enum": [ + "asia\/bangkok" + ], + "title": "asia\/bangkok" + }, + { + "type": "string", + "enum": [ + "asia\/barnaul" + ], + "title": "asia\/barnaul" + }, + { + "type": "string", + "enum": [ + "asia\/beirut" + ], + "title": "asia\/beirut" + }, + { + "type": "string", + "enum": [ + "asia\/bishkek" + ], + "title": "asia\/bishkek" + }, + { + "type": "string", + "enum": [ + "asia\/brunei" + ], + "title": "asia\/brunei" + }, + { + "type": "string", + "enum": [ + "asia\/chita" + ], + "title": "asia\/chita" + }, + { + "type": "string", + "enum": [ + "asia\/colombo" + ], + "title": "asia\/colombo" + }, + { + "type": "string", + "enum": [ + "asia\/damascus" + ], + "title": "asia\/damascus" + }, + { + "type": "string", + "enum": [ + "asia\/dhaka" + ], + "title": "asia\/dhaka" + }, + { + "type": "string", + "enum": [ + "asia\/dili" + ], + "title": "asia\/dili" + }, + { + "type": "string", + "enum": [ + "asia\/dubai" + ], + "title": "asia\/dubai" + }, + { + "type": "string", + "enum": [ + "asia\/dushanbe" + ], + "title": "asia\/dushanbe" + }, + { + "type": "string", + "enum": [ + "asia\/famagusta" + ], + "title": "asia\/famagusta" + }, + { + "type": "string", + "enum": [ + "asia\/gaza" + ], + "title": "asia\/gaza" + }, + { + "type": "string", + "enum": [ + "asia\/hebron" + ], + "title": "asia\/hebron" + }, + { + "type": "string", + "enum": [ + "asia\/ho_chi_minh" + ], + "title": "asia\/ho_chi_minh" + }, + { + "type": "string", + "enum": [ + "asia\/hong_kong" + ], + "title": "asia\/hong_kong" + }, + { + "type": "string", + "enum": [ + "asia\/hovd" + ], + "title": "asia\/hovd" + }, + { + "type": "string", + "enum": [ + "asia\/irkutsk" + ], + "title": "asia\/irkutsk" + }, + { + "type": "string", + "enum": [ + "asia\/jakarta" + ], + "title": "asia\/jakarta" + }, + { + "type": "string", + "enum": [ + "asia\/jayapura" + ], + "title": "asia\/jayapura" + }, + { + "type": "string", + "enum": [ + "asia\/jerusalem" + ], + "title": "asia\/jerusalem" + }, + { + "type": "string", + "enum": [ + "asia\/kabul" + ], + "title": "asia\/kabul" + }, + { + "type": "string", + "enum": [ + "asia\/kamchatka" + ], + "title": "asia\/kamchatka" + }, + { + "type": "string", + "enum": [ + "asia\/karachi" + ], + "title": "asia\/karachi" + }, + { + "type": "string", + "enum": [ + "asia\/kathmandu" + ], + "title": "asia\/kathmandu" + }, + { + "type": "string", + "enum": [ + "asia\/khandyga" + ], + "title": "asia\/khandyga" + }, + { + "type": "string", + "enum": [ + "asia\/kolkata" + ], + "title": "asia\/kolkata" + }, + { + "type": "string", + "enum": [ + "asia\/krasnoyarsk" + ], + "title": "asia\/krasnoyarsk" + }, + { + "type": "string", + "enum": [ + "asia\/kuala_lumpur" + ], + "title": "asia\/kuala_lumpur" + }, + { + "type": "string", + "enum": [ + "asia\/kuching" + ], + "title": "asia\/kuching" + }, + { + "type": "string", + "enum": [ + "asia\/kuwait" + ], + "title": "asia\/kuwait" + }, + { + "type": "string", + "enum": [ + "asia\/macau" + ], + "title": "asia\/macau" + }, + { + "type": "string", + "enum": [ + "asia\/magadan" + ], + "title": "asia\/magadan" + }, + { + "type": "string", + "enum": [ + "asia\/makassar" + ], + "title": "asia\/makassar" + }, + { + "type": "string", + "enum": [ + "asia\/manila" + ], + "title": "asia\/manila" + }, + { + "type": "string", + "enum": [ + "asia\/muscat" + ], + "title": "asia\/muscat" + }, + { + "type": "string", + "enum": [ + "asia\/nicosia" + ], + "title": "asia\/nicosia" + }, + { + "type": "string", + "enum": [ + "asia\/novokuznetsk" + ], + "title": "asia\/novokuznetsk" + }, + { + "type": "string", + "enum": [ + "asia\/novosibirsk" + ], + "title": "asia\/novosibirsk" + }, + { + "type": "string", + "enum": [ + "asia\/omsk" + ], + "title": "asia\/omsk" + }, + { + "type": "string", + "enum": [ + "asia\/oral" + ], + "title": "asia\/oral" + }, + { + "type": "string", + "enum": [ + "asia\/phnom_penh" + ], + "title": "asia\/phnom_penh" + }, + { + "type": "string", + "enum": [ + "asia\/pontianak" + ], + "title": "asia\/pontianak" + }, + { + "type": "string", + "enum": [ + "asia\/pyongyang" + ], + "title": "asia\/pyongyang" + }, + { + "type": "string", + "enum": [ + "asia\/qatar" + ], + "title": "asia\/qatar" + }, + { + "type": "string", + "enum": [ + "asia\/qostanay" + ], + "title": "asia\/qostanay" + }, + { + "type": "string", + "enum": [ + "asia\/qyzylorda" + ], + "title": "asia\/qyzylorda" + }, + { + "type": "string", + "enum": [ + "asia\/riyadh" + ], + "title": "asia\/riyadh" + }, + { + "type": "string", + "enum": [ + "asia\/sakhalin" + ], + "title": "asia\/sakhalin" + }, + { + "type": "string", + "enum": [ + "asia\/samarkand" + ], + "title": "asia\/samarkand" + }, + { + "type": "string", + "enum": [ + "asia\/seoul" + ], + "title": "asia\/seoul" + }, + { + "type": "string", + "enum": [ + "asia\/shanghai" + ], + "title": "asia\/shanghai" + }, + { + "type": "string", + "enum": [ + "asia\/singapore" + ], + "title": "asia\/singapore" + }, + { + "type": "string", + "enum": [ + "asia\/srednekolymsk" + ], + "title": "asia\/srednekolymsk" + }, + { + "type": "string", + "enum": [ + "asia\/taipei" + ], + "title": "asia\/taipei" + }, + { + "type": "string", + "enum": [ + "asia\/tashkent" + ], + "title": "asia\/tashkent" + }, + { + "type": "string", + "enum": [ + "asia\/tbilisi" + ], + "title": "asia\/tbilisi" + }, + { + "type": "string", + "enum": [ + "asia\/tehran" + ], + "title": "asia\/tehran" + }, + { + "type": "string", + "enum": [ + "asia\/thimphu" + ], + "title": "asia\/thimphu" + }, + { + "type": "string", + "enum": [ + "asia\/tokyo" + ], + "title": "asia\/tokyo" + }, + { + "type": "string", + "enum": [ + "asia\/tomsk" + ], + "title": "asia\/tomsk" + }, + { + "type": "string", + "enum": [ + "asia\/ulaanbaatar" + ], + "title": "asia\/ulaanbaatar" + }, + { + "type": "string", + "enum": [ + "asia\/urumqi" + ], + "title": "asia\/urumqi" + }, + { + "type": "string", + "enum": [ + "asia\/ust-nera" + ], + "title": "asia\/ust-nera" + }, + { + "type": "string", + "enum": [ + "asia\/vientiane" + ], + "title": "asia\/vientiane" + }, + { + "type": "string", + "enum": [ + "asia\/vladivostok" + ], + "title": "asia\/vladivostok" + }, + { + "type": "string", + "enum": [ + "asia\/yakutsk" + ], + "title": "asia\/yakutsk" + }, + { + "type": "string", + "enum": [ + "asia\/yangon" + ], + "title": "asia\/yangon" + }, + { + "type": "string", + "enum": [ + "asia\/yekaterinburg" + ], + "title": "asia\/yekaterinburg" + }, + { + "type": "string", + "enum": [ + "asia\/yerevan" + ], + "title": "asia\/yerevan" + }, + { + "type": "string", + "enum": [ + "atlantic\/azores" + ], + "title": "atlantic\/azores" + }, + { + "type": "string", + "enum": [ + "atlantic\/bermuda" + ], + "title": "atlantic\/bermuda" + }, + { + "type": "string", + "enum": [ + "atlantic\/canary" + ], + "title": "atlantic\/canary" + }, + { + "type": "string", + "enum": [ + "atlantic\/cape_verde" + ], + "title": "atlantic\/cape_verde" + }, + { + "type": "string", + "enum": [ + "atlantic\/faroe" + ], + "title": "atlantic\/faroe" + }, + { + "type": "string", + "enum": [ + "atlantic\/madeira" + ], + "title": "atlantic\/madeira" + }, + { + "type": "string", + "enum": [ + "atlantic\/reykjavik" + ], + "title": "atlantic\/reykjavik" + }, + { + "type": "string", + "enum": [ + "atlantic\/south_georgia" + ], + "title": "atlantic\/south_georgia" + }, + { + "type": "string", + "enum": [ + "atlantic\/st_helena" + ], + "title": "atlantic\/st_helena" + }, + { + "type": "string", + "enum": [ + "atlantic\/stanley" + ], + "title": "atlantic\/stanley" + }, + { + "type": "string", + "enum": [ + "australia\/adelaide" + ], + "title": "australia\/adelaide" + }, + { + "type": "string", + "enum": [ + "australia\/brisbane" + ], + "title": "australia\/brisbane" + }, + { + "type": "string", + "enum": [ + "australia\/broken_hill" + ], + "title": "australia\/broken_hill" + }, + { + "type": "string", + "enum": [ + "australia\/darwin" + ], + "title": "australia\/darwin" + }, + { + "type": "string", + "enum": [ + "australia\/eucla" + ], + "title": "australia\/eucla" + }, + { + "type": "string", + "enum": [ + "australia\/hobart" + ], + "title": "australia\/hobart" + }, + { + "type": "string", + "enum": [ + "australia\/lindeman" + ], + "title": "australia\/lindeman" + }, + { + "type": "string", + "enum": [ + "australia\/lord_howe" + ], + "title": "australia\/lord_howe" + }, + { + "type": "string", + "enum": [ + "australia\/melbourne" + ], + "title": "australia\/melbourne" + }, + { + "type": "string", + "enum": [ + "australia\/perth" + ], + "title": "australia\/perth" + }, + { + "type": "string", + "enum": [ + "australia\/sydney" + ], + "title": "australia\/sydney" + }, + { + "type": "string", + "enum": [ + "europe\/amsterdam" + ], + "title": "europe\/amsterdam" + }, + { + "type": "string", + "enum": [ + "europe\/andorra" + ], + "title": "europe\/andorra" + }, + { + "type": "string", + "enum": [ + "europe\/astrakhan" + ], + "title": "europe\/astrakhan" + }, + { + "type": "string", + "enum": [ + "europe\/athens" + ], + "title": "europe\/athens" + }, + { + "type": "string", + "enum": [ + "europe\/belgrade" + ], + "title": "europe\/belgrade" + }, + { + "type": "string", + "enum": [ + "europe\/berlin" + ], + "title": "europe\/berlin" + }, + { + "type": "string", + "enum": [ + "europe\/bratislava" + ], + "title": "europe\/bratislava" + }, + { + "type": "string", + "enum": [ + "europe\/brussels" + ], + "title": "europe\/brussels" + }, + { + "type": "string", + "enum": [ + "europe\/bucharest" + ], + "title": "europe\/bucharest" + }, + { + "type": "string", + "enum": [ + "europe\/budapest" + ], + "title": "europe\/budapest" + }, + { + "type": "string", + "enum": [ + "europe\/busingen" + ], + "title": "europe\/busingen" + }, + { + "type": "string", + "enum": [ + "europe\/chisinau" + ], + "title": "europe\/chisinau" + }, + { + "type": "string", + "enum": [ + "europe\/copenhagen" + ], + "title": "europe\/copenhagen" + }, + { + "type": "string", + "enum": [ + "europe\/dublin" + ], + "title": "europe\/dublin" + }, + { + "type": "string", + "enum": [ + "europe\/gibraltar" + ], + "title": "europe\/gibraltar" + }, + { + "type": "string", + "enum": [ + "europe\/guernsey" + ], + "title": "europe\/guernsey" + }, + { + "type": "string", + "enum": [ + "europe\/helsinki" + ], + "title": "europe\/helsinki" + }, + { + "type": "string", + "enum": [ + "europe\/isle_of_man" + ], + "title": "europe\/isle_of_man" + }, + { + "type": "string", + "enum": [ + "europe\/istanbul" + ], + "title": "europe\/istanbul" + }, + { + "type": "string", + "enum": [ + "europe\/jersey" + ], + "title": "europe\/jersey" + }, + { + "type": "string", + "enum": [ + "europe\/kaliningrad" + ], + "title": "europe\/kaliningrad" + }, + { + "type": "string", + "enum": [ + "europe\/kirov" + ], + "title": "europe\/kirov" + }, + { + "type": "string", + "enum": [ + "europe\/kyiv" + ], + "title": "europe\/kyiv" + }, + { + "type": "string", + "enum": [ + "europe\/lisbon" + ], + "title": "europe\/lisbon" + }, + { + "type": "string", + "enum": [ + "europe\/ljubljana" + ], + "title": "europe\/ljubljana" + }, + { + "type": "string", + "enum": [ + "europe\/london" + ], + "title": "europe\/london" + }, + { + "type": "string", + "enum": [ + "europe\/luxembourg" + ], + "title": "europe\/luxembourg" + }, + { + "type": "string", + "enum": [ + "europe\/madrid" + ], + "title": "europe\/madrid" + }, + { + "type": "string", + "enum": [ + "europe\/malta" + ], + "title": "europe\/malta" + }, + { + "type": "string", + "enum": [ + "europe\/mariehamn" + ], + "title": "europe\/mariehamn" + }, + { + "type": "string", + "enum": [ + "europe\/minsk" + ], + "title": "europe\/minsk" + }, + { + "type": "string", + "enum": [ + "europe\/monaco" + ], + "title": "europe\/monaco" + }, + { + "type": "string", + "enum": [ + "europe\/moscow" + ], + "title": "europe\/moscow" + }, + { + "type": "string", + "enum": [ + "europe\/oslo" + ], + "title": "europe\/oslo" + }, + { + "type": "string", + "enum": [ + "europe\/paris" + ], + "title": "europe\/paris" + }, + { + "type": "string", + "enum": [ + "europe\/podgorica" + ], + "title": "europe\/podgorica" + }, + { + "type": "string", + "enum": [ + "europe\/prague" + ], + "title": "europe\/prague" + }, + { + "type": "string", + "enum": [ + "europe\/riga" + ], + "title": "europe\/riga" + }, + { + "type": "string", + "enum": [ + "europe\/rome" + ], + "title": "europe\/rome" + }, + { + "type": "string", + "enum": [ + "europe\/samara" + ], + "title": "europe\/samara" + }, + { + "type": "string", + "enum": [ + "europe\/san_marino" + ], + "title": "europe\/san_marino" + }, + { + "type": "string", + "enum": [ + "europe\/sarajevo" + ], + "title": "europe\/sarajevo" + }, + { + "type": "string", + "enum": [ + "europe\/saratov" + ], + "title": "europe\/saratov" + }, + { + "type": "string", + "enum": [ + "europe\/simferopol" + ], + "title": "europe\/simferopol" + }, + { + "type": "string", + "enum": [ + "europe\/skopje" + ], + "title": "europe\/skopje" + }, + { + "type": "string", + "enum": [ + "europe\/sofia" + ], + "title": "europe\/sofia" + }, + { + "type": "string", + "enum": [ + "europe\/stockholm" + ], + "title": "europe\/stockholm" + }, + { + "type": "string", + "enum": [ + "europe\/tallinn" + ], + "title": "europe\/tallinn" + }, + { + "type": "string", + "enum": [ + "europe\/tirane" + ], + "title": "europe\/tirane" + }, + { + "type": "string", + "enum": [ + "europe\/ulyanovsk" + ], + "title": "europe\/ulyanovsk" + }, + { + "type": "string", + "enum": [ + "europe\/vaduz" + ], + "title": "europe\/vaduz" + }, + { + "type": "string", + "enum": [ + "europe\/vatican" + ], + "title": "europe\/vatican" + }, + { + "type": "string", + "enum": [ + "europe\/vienna" + ], + "title": "europe\/vienna" + }, + { + "type": "string", + "enum": [ + "europe\/vilnius" + ], + "title": "europe\/vilnius" + }, + { + "type": "string", + "enum": [ + "europe\/volgograd" + ], + "title": "europe\/volgograd" + }, + { + "type": "string", + "enum": [ + "europe\/warsaw" + ], + "title": "europe\/warsaw" + }, + { + "type": "string", + "enum": [ + "europe\/zagreb" + ], + "title": "europe\/zagreb" + }, + { + "type": "string", + "enum": [ + "europe\/zurich" + ], + "title": "europe\/zurich" + }, + { + "type": "string", + "enum": [ + "indian\/antananarivo" + ], + "title": "indian\/antananarivo" + }, + { + "type": "string", + "enum": [ + "indian\/chagos" + ], + "title": "indian\/chagos" + }, + { + "type": "string", + "enum": [ + "indian\/christmas" + ], + "title": "indian\/christmas" + }, + { + "type": "string", + "enum": [ + "indian\/cocos" + ], + "title": "indian\/cocos" + }, + { + "type": "string", + "enum": [ + "indian\/comoro" + ], + "title": "indian\/comoro" + }, + { + "type": "string", + "enum": [ + "indian\/kerguelen" + ], + "title": "indian\/kerguelen" + }, + { + "type": "string", + "enum": [ + "indian\/mahe" + ], + "title": "indian\/mahe" + }, + { + "type": "string", + "enum": [ + "indian\/maldives" + ], + "title": "indian\/maldives" + }, + { + "type": "string", + "enum": [ + "indian\/mauritius" + ], + "title": "indian\/mauritius" + }, + { + "type": "string", + "enum": [ + "indian\/mayotte" + ], + "title": "indian\/mayotte" + }, + { + "type": "string", + "enum": [ + "indian\/reunion" + ], + "title": "indian\/reunion" + }, + { + "type": "string", + "enum": [ + "pacific\/apia" + ], + "title": "pacific\/apia" + }, + { + "type": "string", + "enum": [ + "pacific\/auckland" + ], + "title": "pacific\/auckland" + }, + { + "type": "string", + "enum": [ + "pacific\/bougainville" + ], + "title": "pacific\/bougainville" + }, + { + "type": "string", + "enum": [ + "pacific\/chatham" + ], + "title": "pacific\/chatham" + }, + { + "type": "string", + "enum": [ + "pacific\/chuuk" + ], + "title": "pacific\/chuuk" + }, + { + "type": "string", + "enum": [ + "pacific\/easter" + ], + "title": "pacific\/easter" + }, + { + "type": "string", + "enum": [ + "pacific\/efate" + ], + "title": "pacific\/efate" + }, + { + "type": "string", + "enum": [ + "pacific\/fakaofo" + ], + "title": "pacific\/fakaofo" + }, + { + "type": "string", + "enum": [ + "pacific\/fiji" + ], + "title": "pacific\/fiji" + }, + { + "type": "string", + "enum": [ + "pacific\/funafuti" + ], + "title": "pacific\/funafuti" + }, + { + "type": "string", + "enum": [ + "pacific\/galapagos" + ], + "title": "pacific\/galapagos" + }, + { + "type": "string", + "enum": [ + "pacific\/gambier" + ], + "title": "pacific\/gambier" + }, + { + "type": "string", + "enum": [ + "pacific\/guadalcanal" + ], + "title": "pacific\/guadalcanal" + }, + { + "type": "string", + "enum": [ + "pacific\/guam" + ], + "title": "pacific\/guam" + }, + { + "type": "string", + "enum": [ + "pacific\/honolulu" + ], + "title": "pacific\/honolulu" + }, + { + "type": "string", + "enum": [ + "pacific\/kanton" + ], + "title": "pacific\/kanton" + }, + { + "type": "string", + "enum": [ + "pacific\/kiritimati" + ], + "title": "pacific\/kiritimati" + }, + { + "type": "string", + "enum": [ + "pacific\/kosrae" + ], + "title": "pacific\/kosrae" + }, + { + "type": "string", + "enum": [ + "pacific\/kwajalein" + ], + "title": "pacific\/kwajalein" + }, + { + "type": "string", + "enum": [ + "pacific\/majuro" + ], + "title": "pacific\/majuro" + }, + { + "type": "string", + "enum": [ + "pacific\/marquesas" + ], + "title": "pacific\/marquesas" + }, + { + "type": "string", + "enum": [ + "pacific\/midway" + ], + "title": "pacific\/midway" + }, + { + "type": "string", + "enum": [ + "pacific\/nauru" + ], + "title": "pacific\/nauru" + }, + { + "type": "string", + "enum": [ + "pacific\/niue" + ], + "title": "pacific\/niue" + }, + { + "type": "string", + "enum": [ + "pacific\/norfolk" + ], + "title": "pacific\/norfolk" + }, + { + "type": "string", + "enum": [ + "pacific\/noumea" + ], + "title": "pacific\/noumea" + }, + { + "type": "string", + "enum": [ + "pacific\/pago_pago" + ], + "title": "pacific\/pago_pago" + }, + { + "type": "string", + "enum": [ + "pacific\/palau" + ], + "title": "pacific\/palau" + }, + { + "type": "string", + "enum": [ + "pacific\/pitcairn" + ], + "title": "pacific\/pitcairn" + }, + { + "type": "string", + "enum": [ + "pacific\/pohnpei" + ], + "title": "pacific\/pohnpei" + }, + { + "type": "string", + "enum": [ + "pacific\/port_moresby" + ], + "title": "pacific\/port_moresby" + }, + { + "type": "string", + "enum": [ + "pacific\/rarotonga" + ], + "title": "pacific\/rarotonga" + }, + { + "type": "string", + "enum": [ + "pacific\/saipan" + ], + "title": "pacific\/saipan" + }, + { + "type": "string", + "enum": [ + "pacific\/tahiti" + ], + "title": "pacific\/tahiti" + }, + { + "type": "string", + "enum": [ + "pacific\/tarawa" + ], + "title": "pacific\/tarawa" + }, + { + "type": "string", + "enum": [ + "pacific\/tongatapu" + ], + "title": "pacific\/tongatapu" + }, + { + "type": "string", + "enum": [ + "pacific\/wake" + ], + "title": "pacific\/wake" + }, + { + "type": "string", + "enum": [ + "pacific\/wallis" + ], + "title": "pacific\/wallis" + }, + { + "type": "string", + "enum": [ + "utc" + ], + "title": "utc" + } + ] + }, + "in": "query" + }, + { + "name": "latitude", + "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 37.7749, + "default": 0 + }, + "in": "query" + }, + { + "name": "longitude", + "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": -122.4194, + "default": 0 + }, + "in": "query" + }, + { + "name": "accuracy", + "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 100, + "default": 0 + }, + "in": "query" + }, + { + "name": "touch", + "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "permissions", + "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "BrowserPermission", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "geolocation" + ], + "title": "geolocation" + }, + { + "type": "string", + "enum": [ + "camera" + ], + "title": "camera" + }, + { + "type": "string", + "enum": [ + "microphone" + ], + "title": "microphone" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "midi" + ], + "title": "midi" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + }, + { + "type": "string", + "enum": [ + "clipboard-read" + ], + "title": "clipboard-read" + }, + { + "type": "string", + "enum": [ + "clipboard-write" + ], + "title": "clipboard-write" + }, + { + "type": "string", + "enum": [ + "payment-handler" + ], + "title": "payment-handler" + }, + { + "type": "string", + "enum": [ + "usb" + ], + "title": "usb" + }, + { + "type": "string", + "enum": [ + "bluetooth" + ], + "title": "bluetooth" + }, + { + "type": "string", + "enum": [ + "accelerometer" + ], + "title": "accelerometer" + }, + { + "type": "string", + "enum": [ + "gyroscope" + ], + "title": "gyroscope" + }, + { + "type": "string", + "enum": [ + "magnetometer" + ], + "title": "magnetometer" + }, + { + "type": "string", + "enum": [ + "ambient-light-sensor" + ], + "title": "ambient-light-sensor" + }, + { + "type": "string", + "enum": [ + "background-sync" + ], + "title": "background-sync" + }, + { + "type": "string", + "enum": [ + "persistent-storage" + ], + "title": "persistent-storage" + }, + { + "type": "string", + "enum": [ + "screen-wake-lock" + ], + "title": "screen-wake-lock" + }, + { + "type": "string", + "enum": [ + "web-share" + ], + "title": "web-share" + }, + { + "type": "string", + "enum": [ + "xr-spatial-tracking" + ], + "title": "xr-spatial-tracking" + } + ] + }, + "example": [ + "geolocation", + "notifications" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "sleep", + "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 3, + "default": 0 + }, + "in": "query" + }, + { + "name": "width", + "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 800, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 600, + "default": 0 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 85, + "default": -1 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpeg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/backups\/archives": { + "get": { + "summary": "List archives", + "operationId": "backupsListArchives", + "tags": [ + "backups" + ], + "description": "List all archives for a project.", + "responses": { + "200": { + "description": "Backup archive list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchiveList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-archives.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create archive", + "operationId": "backupsCreateArchive", + "tags": [ + "backups" + ], + "description": "Create a new archive asynchronously for a project.", + "responses": { + "201": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + } + }, + "required": [ + "services" + ] + } + } + } + } + } + }, + "\/backups\/archives\/{archiveId}": { + "get": { + "summary": "Get backup archive", + "operationId": "backupsGetArchive", + "tags": [ + "backups" + ], + "description": "Get a backup archive using it's ID.", + "responses": { + "200": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Archive ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete archive", + "operationId": "backupsDeleteArchive", + "tags": [ + "backups" + ], + "description": "Delete an existing archive for a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "backupsListPolicies", + "tags": [ + "backups" + ], + "description": "List all policies for a project.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "backupsCreatePolicy", + "tags": [ + "backups" + ], + "description": "Create a new backup policy.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When set to 'disabled', no backups will be taken", + "type": "boolean", + "default": true, + "example": false + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + } + }, + "required": [ + "policyId", + "services", + "retention", + "schedule" + ] + } + } + } + } + } + }, + "\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "backupsGetPolicy", + "tags": [ + "backups" + ], + "description": "Get a backup policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "backupsUpdatePolicy", + "tags": [ + "backups" + ], + "description": "Update an existing policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/update-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "schedule": { + "description": "Cron expression", + "type": "string" + }, + "enabled": { + "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "backupsDeletePolicy", + "tags": [ + "backups" + ], + "description": "Delete a policy using it's ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/backups\/restoration": { + "post": { + "summary": "Create restoration", + "operationId": "backupsCreateRestoration", + "tags": [ + "backups" + ], + "description": "Create and trigger a new restoration for a backup on a project.\n\nFor a backup of one database, the restoration resolves its destination before it is queued. When `newResourceId` is omitted, the archived database is restored in place and its own ID is returned in `options`. Pass a different `newResourceId` to restore alongside it as a new database instead.\n\nThe restoration migration records the archived database in `resourceId` and `resourceType`, and the resolved database in `destinationResourceId` and `destinationResourceType`. Database types are stored canonically as `database`, `documentsdb`, or `vectorsdb`. Project-wide restorations leave these fields empty because they do not have a single source or destination database.\n\nTo list every migration related to one database, use its canonical type in a nested `OR(AND(...), AND(...), AND(...))` across the root, parent, and destination relation pairs: `(resourceType, resourceId)`, `(parentResourceType, parentResourceId)`, and `(destinationResourceType, destinationResourceId)`. Legacy and TablesDB databases use `database`; the operational `resourceType` of a table migration is not rewritten to `tablesdb`.\n\nWhen restoring a DocumentsDB or VectorsDB database from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification and lands the data there. An in-place restore swaps the database onto that backing only once the restore has succeeded, and retires the backing it displaced only once that swap is confirmed, so the source keeps serving its own data until the restored data is in place and any failure leaves it untouched. A serverless source has no dedicated backing to clone and restores onto the archived database instead.\n", + "responses": { + "201": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "archiveId": { + "description": "Backup archive ID to restore", + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "services": { + "description": "Array of services to restore", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "newResourceId": { + "description": "Destination resource ID. Omit to restore the archived resource in place, or pass a different ID to restore alongside it as a new resource. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<NEW_RESOURCE_ID>" + }, + "newResourceName": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NEW_RESOURCE_NAME>" + } + }, + "required": [ + "archiveId", + "services" + ] + } + } + } + } + } + }, + "\/backups\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "backupsListRestorations", + "tags": [ + "backups" + ], + "description": "List all backup restorations for a project.", + "responses": { + "200": { + "description": "Backup restoration list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/backups\/restorations\/{restorationId}": { + "get": { + "summary": "Get backup restoration", + "operationId": "backupsGetRestoration", + "tags": [ + "backups" + ], + "description": "Get the current status of a backup restoration.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "restorationId", + "description": "Restoration ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/campaigns\/{campaignId}": { + "get": { + "summary": "Get campaign details", + "operationId": "consoleGetCampaign", + "tags": [ + "console" + ], + "description": "Receive the details of a campaign using its ID.", + "responses": { + "201": { + "description": "Campaign", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/campaign" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-campaign.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "campaignId", + "description": "ID of the campaign", + "required": true, + "schema": { + "type": "string", + "example": "<CAMPAIGN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/coupons\/{couponId}": { + "get": { + "summary": "Get coupon details", + "operationId": "consoleGetCoupon", + "tags": [ + "console" + ], + "description": "Get the details of a coupon using it's coupon ID.", + "responses": { + "201": { + "description": "Coupon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/coupon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-coupon.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "couponId", + "description": "ID of the coupon", + "required": true, + "schema": { + "type": "string", + "example": "<COUPON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/databases": { + "get": { + "summary": "List databases", + "operationId": "consoleListDatabases", + "tags": [ + "console" + ], + "description": "Get a list of all the project's databases. You can use the query params to filter your results. This returns every database across all types and product APIs in a single call.\n", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-databases.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/oauth2-providers": { + "get": { + "summary": "List OAuth2 providers", + "operationId": "consoleListOAuth2Providers", + "tags": [ + "console" + ], + "description": "List all OAuth2 providers supported by the Appwrite server, along with the parameters required to configure each provider. The response excludes mock providers but includes sandbox providers.", + "responses": { + "200": { + "description": "Console OAuth2 Providers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleOAuth2ProviderList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/plans": { + "get": { + "summary": "Get plans", + "operationId": "consoleGetPlans", + "tags": [ + "console" + ], + "description": "Return a list of all available plans.", + "responses": { + "200": { + "description": "Billing plan list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlanList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-plans.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "platform", + "description": "Platform type", + "required": false, + "schema": { + "type": "string", + "example": "appwrite", + "title": "Platform", + "oneOf": [ + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "imagine" + ], + "title": "imagine" + } + ], + "default": "appwrite" + }, + "in": "query" + } + ] + } + }, + "\/console\/plans\/{planId}": { + "get": { + "summary": "Get plan", + "operationId": "consoleGetPlan", + "tags": [ + "console" + ], + "description": "Get the details of a plan using its plan ID.", + "responses": { + "200": { + "description": "billingPlan", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlan" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-plan.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "planId", + "description": "Plan id", + "required": true, + "schema": { + "type": "string", + "example": "<PLAN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/postgres-extensions": { + "get": { + "summary": "List Postgres extensions", + "operationId": "consoleListPostgresExtensions", + "tags": [ + "console" + ], + "description": "Get the catalog of Postgres extensions that can be installed on a dedicated Postgres database.\n", + "responses": { + "200": { + "description": "Postgres extensions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/postgresExtensionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-postgres-extensions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/programs\/{programId}": { + "get": { + "summary": "Get program details", + "operationId": "consoleGetProgram", + "tags": [ + "console" + ], + "description": "Receive the details of a program using its ID.", + "responses": { + "201": { + "description": "Program", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/program" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-program.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "programId", + "description": "ID of the program", + "required": true, + "schema": { + "type": "string", + "example": "<PROGRAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/programs\/{programId}\/memberships": { + "post": { + "summary": "Create program membership", + "operationId": "consoleCreateProgramMembership", + "tags": [ + "console" + ], + "description": "Create a new membership for an account to a program.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/create-program-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "programId", + "description": "ID of the program", + "required": true, + "schema": { + "type": "string", + "example": "<PROGRAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/console\/regions": { + "get": { + "summary": "List Regions", + "operationId": "consoleListRegions", + "tags": [ + "console" + ], + "description": "Get all available regions for the console.", + "responses": { + "200": { + "description": "Regions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleRegionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/list-regions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/console\/resources": { + "get": { + "summary": "Check resource ID availability", + "operationId": "consoleGetResource", + "tags": [ + "console" + ], + "description": "Check if a resource ID is available.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-resource.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "value", + "description": "Resource value.", + "required": true, + "schema": { + "type": "string", + "example": "<VALUE>" + }, + "in": "query" + }, + { + "name": "type", + "description": "Resource type.", + "required": true, + "schema": { + "type": "string", + "example": "rules", + "title": "ConsoleResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "rules" + ], + "title": "rules" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/console\/scopes\/organization": { + "get": { + "summary": "List organization scopes", + "operationId": "consoleListOrganizationScopes", + "tags": [ + "console" + ], + "description": "List all scopes available for organization API keys, along with a description for each scope.", + "responses": { + "200": { + "description": "Console Key Scopes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleKeyScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-organization-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/scopes\/project": { + "get": { + "summary": "List project scopes", + "operationId": "consoleListProjectScopes", + "tags": [ + "console" + ], + "description": "List all scopes available for project API keys, along with a description for each scope.", + "responses": { + "200": { + "description": "Console Key Scopes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleKeyScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/list-project-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/console\/sources": { + "post": { + "summary": "Create source", + "operationId": "consoleCreateSource", + "tags": [ + "console" + ], + "description": "Create a new source.", + "responses": { + "201": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/create-source.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ref": { + "description": "Ref param", + "type": "string", + "example": "<REF>", + "nullable": true + }, + "referrer": { + "description": "Referrer", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "utmSource": { + "description": "Utm source", + "type": "string", + "example": "<UTM_SOURCE>", + "nullable": true + }, + "utmCampaign": { + "description": "Utm campaign", + "type": "string", + "example": "<UTM_CAMPAIGN>", + "nullable": true + }, + "utmMedium": { + "description": "Utm medium", + "type": "string", + "example": "<UTM_MEDIUM>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/console\/suggestions\/columns": { + "get": { + "summary": "Get column suggestions with size limits for a table, using database context and an optional user provided context", + "operationId": "consoleSuggestColumns", + "tags": [ + "console" + ], + "description": "Suggests column names and their size limits based on the provided table name. The API will also analyze other tables in the same database to provide context-aware suggestions, ensuring consistency across schema design. Users may optionally provide custom context to further refine the suggestions.", + "responses": { + "200": { + "description": "Columns List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-columns.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "query" + }, + { + "name": "context", + "description": "Optional user provided context to refine suggestions.", + "required": false, + "schema": { + "type": "string", + "example": "<CONTEXT>" + }, + "in": "query" + }, + { + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 3 + }, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 7 + }, + "in": "query" + } + ] + } + }, + "\/console\/suggestions\/indexes": { + "get": { + "summary": "Get index suggestions for table columns, using database context", + "operationId": "consoleSuggestIndexes", + "tags": [ + "console" + ], + "description": "Suggests database indexes for table columns based on the provided table structure and existing columns. The API will also analyze the table's column types, names, and patterns to recommend optimal indexes that improve query performance for common database operations like filtering, sorting, and searching.", + "responses": { + "200": { + "description": "Column Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-indexes.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "query" + }, + { + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 1 + }, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 4 + }, + "in": "query" + } + ] + } + }, + "\/console\/suggestions\/queries": { + "get": { + "summary": "Get query suggestions for a list resource from free-text intent", + "operationId": "consoleSuggestQueries", + "tags": [ + "console" + ], + "description": "Suggest valid Appwrite query JSON objects for a supported list resource from free-text user intent. The endpoint picks a validator based on `resource` \u2014 for system resources it uses the static validator and its allowed attributes, and for user-owned table rows it loads the table schema and validates against those attributes at request time. The returned queries are guaranteed to parse and pass the relevant queries validator.\n", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/suggest-queries.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resource", + "description": "Resource to generate queries for.", + "required": true, + "schema": { + "type": "string", + "example": "activities", + "title": "QuerySuggestionResource", + "oneOf": [ + { + "type": "string", + "enum": [ + "activities" + ], + "title": "activities" + }, + { + "type": "string", + "enum": [ + "activityevents" + ], + "title": "activity_events" + }, + { + "type": "string", + "enum": [ + "archives" + ], + "title": "archives" + }, + { + "type": "string", + "enum": [ + "credits" + ], + "title": "credits" + }, + { + "type": "string", + "enum": [ + "dnsrecords" + ], + "title": "dns_records" + }, + { + "type": "string", + "enum": [ + "domains" + ], + "title": "domains" + }, + { + "type": "string", + "enum": [ + "invoices" + ], + "title": "invoices" + }, + { + "type": "string", + "enum": [ + "paymentmethods" + ], + "title": "payment_methods" + }, + { + "type": "string", + "enum": [ + "policies" + ], + "title": "policies" + }, + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "restorations" + ], + "title": "restorations" + }, + { + "type": "string", + "enum": [ + "teamaggregations" + ], + "title": "team_aggregations" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tables" + ], + "title": "tables" + }, + { + "type": "string", + "enum": [ + "rows" + ], + "title": "rows" + }, + { + "type": "string", + "enum": [ + "schedules" + ], + "title": "schedules" + }, + { + "type": "string", + "enum": [ + "platforms" + ], + "title": "platforms" + }, + { + "type": "string", + "enum": [ + "keys" + ], + "title": "keys" + }, + { + "type": "string", + "enum": [ + "webhooks" + ], + "title": "webhooks" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "certificates" + ], + "title": "certificates" + }, + { + "type": "string", + "enum": [ + "realtime" + ], + "title": "realtime" + }, + { + "type": "string", + "enum": [ + "rules" + ], + "title": "rules" + }, + { + "type": "string", + "enum": [ + "installations" + ], + "title": "installations" + }, + { + "type": "string", + "enum": [ + "repositories" + ], + "title": "repositories" + }, + { + "type": "string", + "enum": [ + "vcscomments" + ], + "title": "vcs_comments" + }, + { + "type": "string", + "enum": [ + "vcscommentlocks" + ], + "title": "vcs_comment_locks" + }, + { + "type": "string", + "enum": [ + "reports" + ], + "title": "reports" + }, + { + "type": "string", + "enum": [ + "insights" + ], + "title": "insights" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "cache" + ], + "title": "cache" + }, + { + "type": "string", + "enum": [ + "tokens" + ], + "title": "tokens" + }, + { + "type": "string", + "enum": [ + "authenticators" + ], + "title": "authenticators" + }, + { + "type": "string", + "enum": [ + "challenges" + ], + "title": "challenges" + }, + { + "type": "string", + "enum": [ + "sessions" + ], + "title": "sessions" + }, + { + "type": "string", + "enum": [ + "identities" + ], + "title": "identities" + }, + { + "type": "string", + "enum": [ + "memberships" + ], + "title": "memberships" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + }, + { + "type": "string", + "enum": [ + "pushledger" + ], + "title": "push_ledger" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "targets" + ], + "title": "targets" + }, + { + "type": "string", + "enum": [ + "presencelogs" + ], + "title": "presence_logs" + }, + { + "type": "string", + "enum": [ + "companies" + ], + "title": "companies" + }, + { + "type": "string", + "enum": [ + "billingaddresses" + ], + "title": "billing_addresses" + }, + { + "type": "string", + "enum": [ + "billingaggregations" + ], + "title": "billing_aggregations" + }, + { + "type": "string", + "enum": [ + "billingaggregationresources" + ], + "title": "billing_aggregation_resources" + }, + { + "type": "string", + "enum": [ + "billingteamprojectaggregations" + ], + "title": "billing_team_project_aggregations" + }, + { + "type": "string", + "enum": [ + "billingteamaggregations_v2" + ], + "title": "billing_team_aggregations_v2" + }, + { + "type": "string", + "enum": [ + "billingteamaggregationresources" + ], + "title": "billing_team_aggregation_resources" + }, + { + "type": "string", + "enum": [ + "billinginvoices_v2" + ], + "title": "billing_invoices_v2" + }, + { + "type": "string", + "enum": [ + "billingaddons" + ], + "title": "billing_addons" + }, + { + "type": "string", + "enum": [ + "alerts" + ], + "title": "alerts" + }, + { + "type": "string", + "enum": [ + "payments" + ], + "title": "payments" + }, + { + "type": "string", + "enum": [ + "billingdiscounts" + ], + "title": "billing_discounts" + }, + { + "type": "string", + "enum": [ + "resourcesdeleted" + ], + "title": "resources_deleted" + }, + { + "type": "string", + "enum": [ + "sources" + ], + "title": "sources" + }, + { + "type": "string", + "enum": [ + "deals" + ], + "title": "deals" + }, + { + "type": "string", + "enum": [ + "blocks" + ], + "title": "blocks" + }, + { + "type": "string", + "enum": [ + "threats" + ], + "title": "threats" + }, + { + "type": "string", + "enum": [ + "feedbacks" + ], + "title": "feedbacks" + }, + { + "type": "string", + "enum": [ + "disputes" + ], + "title": "disputes" + }, + { + "type": "string", + "enum": [ + "wafrules" + ], + "title": "waf_rules" + }, + { + "type": "string", + "enum": [ + "sh_installations" + ], + "title": "sh_installations" + }, + { + "type": "string", + "enum": [ + "migrationdatabases" + ], + "title": "migration_databases" + }, + { + "type": "string", + "enum": [ + "migrationprojects" + ], + "title": "migration_projects" + }, + { + "type": "string", + "enum": [ + "affiliatelinks" + ], + "title": "affiliate_links" + }, + { + "type": "string", + "enum": [ + "affiliatereferrals" + ], + "title": "affiliate_referrals" + }, + { + "type": "string", + "enum": [ + "affiliaterewards" + ], + "title": "affiliate_rewards" + }, + { + "type": "string", + "enum": [ + "apps" + ], + "title": "apps" + }, + { + "type": "string", + "enum": [ + "appsecrets" + ], + "title": "app_secrets" + }, + { + "type": "string", + "enum": [ + "appinstallations" + ], + "title": "app_installations" + }, + { + "type": "string", + "enum": [ + "appkeys" + ], + "title": "app_keys" + }, + { + "type": "string", + "enum": [ + "oauth2grants" + ], + "title": "oauth2_grants" + }, + { + "type": "string", + "enum": [ + "oauth2consents" + ], + "title": "oauth2_consents" + }, + { + "type": "string", + "enum": [ + "oauth2tokens" + ], + "title": "oauth2_tokens" + }, + { + "type": "string", + "enum": [ + "attributes" + ], + "title": "attributes" + }, + { + "type": "string", + "enum": [ + "indexes" + ], + "title": "indexes" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "deployments" + ], + "title": "deployments" + }, + { + "type": "string", + "enum": [ + "variables" + ], + "title": "variables" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "resourcetokens" + ], + "title": "resource_tokens" + }, + { + "type": "string", + "enum": [ + "transactions" + ], + "title": "transactions" + }, + { + "type": "string", + "enum": [ + "transactionlogs" + ], + "title": "transaction_logs" + }, + { + "type": "string", + "enum": [ + "analyticsproperties" + ], + "title": "analytics_properties" + }, + { + "type": "string", + "enum": [ + "dedicateddatabases" + ], + "title": "dedicated_databases" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseconfigs" + ], + "title": "dedicated_database_configs" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseruntimes" + ], + "title": "dedicated_database_runtimes" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaseoperations" + ], + "title": "dedicated_database_operations" + }, + { + "type": "string", + "enum": [ + "dedicateddatabasebackups" + ], + "title": "dedicated_database_backups" + }, + { + "type": "string", + "enum": [ + "dedicateddatabaserestorations" + ], + "title": "dedicated_database_restorations" + }, + { + "type": "string", + "enum": [ + "dedicateddatabasebranches" + ], + "title": "dedicated_database_branches" + } + ] + }, + "in": "query" + }, + { + "name": "input", + "description": "Natural language query intent used to generate filters\/sorting\/pagination.", + "required": true, + "schema": { + "type": "string", + "example": "<INPUT>" + }, + "in": "query" + }, + { + "name": "databaseId", + "description": "Database ID. Required when resource is `tables` or `rows`.", + "required": false, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID. Required when resource is `rows`.", + "required": false, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "query" + } + ] + } + }, + "\/console\/templates\/email\/{templateId}": { + "get": { + "summary": "Get email template", + "operationId": "consoleGetEmailTemplate", + "tags": [ + "console" + ], + "description": "Get the Appwrite built-in default email template for the specified type and locale. Always returns the unmodified default, ignoring any custom project overrides.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "console\/get-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "required": true, + "schema": { + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "schema": { + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/console\/variables": { + "get": { + "summary": "Get variables", + "operationId": "consoleVariables", + "tags": [ + "console" + ], + "description": "Get all Environment Variables that are relevant for the console.", + "responses": { + "200": { + "description": "Console Variables", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleVariables" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "console", + "demo": "console\/variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/databases": { + "get": { + "summary": "List databases", + "operationId": "databasesList", + "tags": [ + "databases" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + }, + "methods": [ + { + "name": "list", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "queries", + "search", + "total" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/databaseList" + } + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "demo": "databases\/list.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "databasesCreate", + "tags": [ + "databases" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + }, + "methods": [ + { + "name": "create", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Create a new Database.\n", + "demo": "databases\/create.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", + "tags": [ + "databases" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", + "tags": [ + "databases" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", + "tags": [ + "databases" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", + "tags": [ + "databases" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", + "tags": [ + "databases" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "databasesCreateOperations", + "tags": [ + "databases" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "databasesGet", + "tags": [ + "databases" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + }, + "methods": [ + { + "name": "get", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "demo": "databases\/get.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "databasesUpdate", + "tags": [ + "databases" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + }, + "methods": [ + { + "name": "update", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Update a database by its unique ID.", + "demo": "databases\/update.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "databasesDelete", + "tags": [ + "databases" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + }, + "methods": [ + { + "name": "delete", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "demo": "databases\/delete.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "databasesListCollections", + "tags": [ + "databases" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTables" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collections", + "operationId": "databasesCreateCollection", + "tags": [ + "databases" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTable" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "databasesGetCollection", + "tags": [ + "databases" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTable" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "databasesUpdateCollection", + "tags": [ + "databases" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTable" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "databasesDeleteCollection", + "tags": [ + "databases" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTable" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "get": { + "summary": "List attributes", + "operationId": "databasesListAttributes", + "tags": [ + "databases" + ], + "description": "List attributes in the collection.", + "responses": { + "200": { + "description": "Attributes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/list-attributes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listColumns" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, size, required, array, status, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { + "post": { + "summary": "Create bigint attribute", + "operationId": "databasesCreateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBigIntColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { + "patch": { + "summary": "Update bigint attribute", + "operationId": "databasesUpdateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBigIntColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { + "post": { + "summary": "Create boolean attribute", + "operationId": "databasesCreateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Create a boolean attribute.\n", + "responses": { + "202": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBooleanColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { + "patch": { + "summary": "Update boolean attribute", + "operationId": "databasesUpdateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBooleanColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { + "post": { + "summary": "Create datetime attribute", + "operationId": "databasesCreateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Create a date time attribute according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createDatetimeColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { + "patch": { + "summary": "Update datetime attribute", + "operationId": "databasesUpdateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateDatetimeColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { + "post": { + "summary": "Create email attribute", + "operationId": "databasesCreateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Create an email attribute.\n", + "responses": { + "202": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEmailColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { + "patch": { + "summary": "Update email attribute", + "operationId": "databasesUpdateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEmailColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { + "post": { + "summary": "Create enum attribute", + "operationId": "databasesCreateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", + "responses": { + "202": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEnumColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { + "patch": { + "summary": "Update enum attribute", + "operationId": "databasesUpdateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEnumColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { + "post": { + "summary": "Create float attribute", + "operationId": "databasesCreateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createFloatColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { + "patch": { + "summary": "Update float attribute", + "operationId": "databasesUpdateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateFloatColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { + "post": { + "summary": "Create integer attribute", + "operationId": "databasesCreateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIntegerColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { + "patch": { + "summary": "Update integer attribute", + "operationId": "databasesUpdateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIntegerColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { + "post": { + "summary": "Create IP address attribute", + "operationId": "databasesCreateIpAttribute", + "tags": [ + "databases" + ], + "description": "Create IP address attribute.\n", + "responses": { + "202": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIpColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { + "patch": { + "summary": "Update IP address attribute", + "operationId": "databasesUpdateIpAttribute", + "tags": [ + "databases" + ], + "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIpColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { + "post": { + "summary": "Create line attribute", + "operationId": "databasesCreateLineAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric line attribute.", + "responses": { + "202": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLineColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { + "patch": { + "summary": "Update line attribute", + "operationId": "databasesUpdateLineAttribute", + "tags": [ + "databases" + ], + "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLineColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + "post": { + "summary": "Create longtext attribute", + "operationId": "databasesCreateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a longtext attribute.\n", + "responses": { + "202": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLongtextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { + "patch": { + "summary": "Update longtext attribute", + "operationId": "databasesUpdateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLongtextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { + "post": { + "summary": "Create mediumtext attribute", + "operationId": "databasesCreateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a mediumtext attribute.\n", + "responses": { + "202": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createMediumtextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext attribute", + "operationId": "databasesUpdateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateMediumtextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { + "post": { + "summary": "Create point attribute", + "operationId": "databasesCreatePointAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric point attribute.", + "responses": { + "202": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPointColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { + "patch": { + "summary": "Update point attribute", + "operationId": "databasesUpdatePointAttribute", + "tags": [ + "databases" + ], + "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePointColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { + "post": { + "summary": "Create polygon attribute", + "operationId": "databasesCreatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric polygon attribute.", + "responses": { + "202": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPolygonColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { + "patch": { + "summary": "Update polygon attribute", + "operationId": "databasesUpdatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePolygonColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { + "post": { + "summary": "Create relationship attribute", + "operationId": "databasesCreateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "202": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRelationshipColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedCollectionId": { + "description": "Related Collection ID.", + "type": "string", + "example": "<RELATED_COLLECTION_ID>" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Attribute Key.", + "type": "string", + "example": "<TWO_WAY_KEY>", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedCollectionId", + "type" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { + "patch": { + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "200": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRelationshipColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { + "post": { + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", + "tags": [ + "databases" + ], + "description": "Create a string attribute.\n", + "responses": { + "202": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Attribute size for text attributes, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "patch": { + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", + "tags": [ + "databases" + ], + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "post": { + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", + "tags": [ + "databases" + ], + "description": "Create a text attribute.\n", + "responses": { + "202": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "patch": { + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", + "tags": [ + "databases" + ], + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "post": { + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Create a URL attribute.\n", + "responses": { + "202": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createUrlColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "patch": { + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateUrlColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "post": { + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Create a varchar attribute.\n", + "responses": { + "202": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createVarcharColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "patch": { + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateVarcharColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { + "get": { + "summary": "Get attribute", + "operationId": "databasesGetAttribute", + "tags": [ + "databases" + ], + "description": "Get attribute by ID.", + "responses": { + "200": { + "description": "AttributeBoolean, or AttributeBigInt, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributePoint, or AttributeLine, or AttributePolygon, or AttributeVarchar, or AttributeText, or AttributeMediumtext, or AttributeLongtext, or AttributeString", + "content": { + "application\/json": { + "schema": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/get-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", + "tags": [ + "databases" + ], + "description": "Deletes an attribute.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/delete-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "databasesListDocuments", + "tags": [ + "databases" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "databasesCreateDocument", + "tags": [ + "databases" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, + "methods": [ + { + "name": "createDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + } + }, + { + "name": "createDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRows" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "databasesUpsertDocuments", + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + }, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "demo": "databases\/upsert-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRows" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRows" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "databasesGetDocument", + "tags": [ + "databases" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "databasesUpsertDocument", + "tags": [ + "databases" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, + "methods": [ + { + "name": "upsertDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/upsert-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "databasesUpdateDocument", + "tags": [ + "databases" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "databasesDeleteDocument", + "tags": [ + "databases" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "databasesDecrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Decrement a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "databasesIncrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Increment a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "databasesListIndexes", + "tags": [ + "databases" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listIndexes" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "databasesCreateIndex", + "tags": [ + "databases" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIndex" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DatabasesIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "databasesGetIndex", + "tags": [ + "databases" + ], + "description": "Get an index by its unique ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getIndex" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "databasesDeleteIndex", + "tags": [ + "databases" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteIndex" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb": { + "get": { + "summary": "List databases", + "operationId": "documentsDBList", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "documentsDBCreate", + "tags": [ + "documentsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "documentsDBListSpecifications", + "tags": [ + "documentsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/documentsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "documentsDBListTransactions", + "tags": [ + "documentsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", + "tags": [ + "documentsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "tags": [ + "documentsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "documentsDBGet", + "tags": [ + "documentsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", + "tags": [ + "documentsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", + "tags": [ + "documentsDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", + "tags": [ + "documentsDB" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "documentsDBGetCollection", + "tags": [ + "documentsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", + "tags": [ + "documentsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", + "tags": [ + "documentsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "tags": [ + "documentsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", + "tags": [ + "documentsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "demo": "documentsdb\/upsert-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", + "tags": [ + "documentsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", + "tags": [ + "documentsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", + "tags": [ + "documentsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "tags": [ + "documentsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "tags": [ + "documentsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", + "tags": [ + "documentsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to decrement the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", + "tags": [ + "documentsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "documentsDBCreateIndex", + "tags": [ + "documentsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DocumentsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", + "tags": [ + "documentsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", + "tags": [ + "documentsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "documentsDBCreateFailover", + "tags": [ + "documentsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "documentsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "documentsDBListOperations", + "tags": [ + "documentsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "documentsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "documentsDBGetReplicas", + "tags": [ + "documentsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "documentsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "documentsDBGetStatus", + "tags": [ + "documentsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", + "tags": [ + "domains" + ], + "description": "List all domains registered for this project. This endpoint supports pagination.", + "responses": { + "200": { + "description": "Domains list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as domain name, teamInternalId, expiration, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create a new domain.", + "operationId": "domainsCreate", + "tags": [ + "domains" + ], + "description": "Create a new domain. Before creating a domain, you need to ensure that your DNS provider is properly configured. After creating the domain, you can use the verification endpoint to check if the domain is ready to be used.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team unique ID.", + "type": "string", + "example": "<TEAM_ID>" + }, + "domain": { + "description": "Domain name (e.g. \"example.com\").", + "type": "string", + "example": "example.com" + } + }, + "required": [ + "teamId", + "domain" + ] + } + } + } + } + } + }, + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", + "tags": [ + "domains" + ], + "description": "Get the registration price for a domain name.", + "responses": { + "200": { + "description": "DomainPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPrice" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": null, + "demo": "domains\/get-price.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "2.0.0", + "replaceWith": "domains.listPrices" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domain", + "description": "Domain name to get price for.", + "required": true, + "schema": { + "type": "string", + "example": "example.com" + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/prices": { + "get": { + "summary": "List domain prices", + "operationId": "domainsListPrices", + "tags": [ + "domains" + ], + "description": "Check availability and get the requested registration price for one or more domain names. Availability is resolved for all domains in a single registrar lookup. Unavailable domains have a null price for new registrations, but can still be priced for renewal, transfer, or trade. Every priced domain also carries its renewal price for the same period, so a separate renewal lookup is not needed. A domain whose price could not be resolved, for example because its TLD is not supported, is returned with a null price.", + "responses": { + "200": { + "description": "Domain prices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPricesList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-prices.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domains", + "description": "Domain names to check availability and price for. Maximum of 50 domains per request.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/purchases": { + "post": { + "summary": "Create a domain purchase", + "operationId": "domainsCreatePurchase", + "tags": [ + "domains" + ], + "description": "Initiate a domain purchase by providing registrant details and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Purchase endpoint to capture the payment and finalize the purchase.", + "responses": { + "201": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-purchase.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Fully qualified domain name to purchase (for example, example.com).", + "type": "string", + "example": "example.com" + }, + "organizationId": { + "description": "Team ID that will own the domain.", + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "firstName": { + "description": "Registrant first name used for domain registration.", + "type": "string", + "example": "<FIRST_NAME>" + }, + "lastName": { + "description": "Registrant last name used for domain registration.", + "type": "string", + "example": "<LAST_NAME>" + }, + "email": { + "description": "Registrant email address for registration and notices.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phone": { + "description": "Registrant phone number in E.164 format (for example, +15555551234).", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "billingAddressId": { + "description": "Billing address ID used for registration contact details.", + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "addressLine3": { + "description": "Additional address line for the registrant (line 3).", + "type": "string", + "default": "", + "example": "<ADDRESS_LINE3>" + }, + "companyName": { + "description": "Company or organization name for the registrant.", + "type": "string", + "default": "", + "example": "<COMPANY_NAME>" + }, + "periodYears": { + "description": "Registration term in years (1-10).", + "type": "integer", + "default": 1, + "example": 1, + "format": "int32" + }, + "autoRenewal": { + "description": "Whether the domain should renew automatically after purchase.", + "type": "boolean", + "default": true, + "example": false + }, + "paymentMethodId": { + "description": "Payment method ID to authorize and capture the purchase.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "domain", + "organizationId", + "firstName", + "lastName", + "email", + "phone", + "billingAddressId", + "paymentMethodId" + ] + } + } + } + } + } + }, + "\/domains\/purchases\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain purchase", + "operationId": "domainsUpdatePurchase", + "tags": [ + "domains" + ], + "description": "Finalize a domain purchase initiated with Create Purchase. Verifies that any required 3D Secure authentication is complete, registers the domain, captures the payment, and provisions default DNS records. Returns a 402 error if authentication is still pending.", + "responses": { + "200": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-purchase.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "invoiceId", + "description": "Invoice ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "organizationId": { + "description": "Team ID that owns the domain.", + "type": "string", + "example": "<ORGANIZATION_ID>" + } + }, + "required": [ + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/suggestions": { + "get": { + "summary": "List domain suggestions", + "operationId": "domainsListSuggestions", + "tags": [ + "domains" + ], + "description": "List domain suggestions.", + "responses": { + "200": { + "description": "Domain suggestions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainSuggestionsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-suggestions.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "query", + "description": "Query to find available domains and suggestions. Max length: 256 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<QUERY>" + }, + "in": "query" + }, + { + "name": "tlds", + "description": "TLDs to suggest.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of suggestions to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + }, + { + "name": "filterType", + "description": "Filter type: premium, suggestion.", + "required": false, + "schema": { + "type": "string", + "example": "premium", + "title": "DomainSuggestionType", + "oneOf": [ + { + "type": "string", + "enum": [ + "premium" + ], + "title": "premium" + }, + { + "type": "string", + "enum": [ + "suggestion" + ], + "title": "suggestion" + } + ] + }, + "in": "query" + }, + { + "name": "priceMax", + "description": "Filter premium domains by maximum price. Only premium domains at or below this price will be returned. Does not affect regular domain suggestions.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + }, + { + "name": "priceMin", + "description": "Filter premium domains by minimum price. Only premium domains at or above this price will be returned. Does not affect regular domain suggestions.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + }, + "in": "query" + } + ] + } + }, + "\/domains\/transfers\/in": { + "post": { + "summary": "Create a domain transfer in.", + "operationId": "domainsCreateTransferIn", + "tags": [ + "domains" + ], + "description": "Initiate a domain transfer-in by providing an authorization code, registrant details, and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Transfer In endpoint to capture the payment and submit the transfer.", + "responses": { + "201": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-transfer-in.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name to transfer in.", + "type": "string", + "example": "example.com" + }, + "organizationId": { + "description": "Organization ID that this domain will belong to.", + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "authCode": { + "description": "Authorization code for the domain transfer.", + "type": "string", + "example": "<AUTH_CODE>" + }, + "autoRenewal": { + "description": "Whether the domain should renew automatically after transfer.", + "type": "boolean", + "default": true, + "example": false + }, + "paymentMethodId": { + "description": "Payment method ID to authorize and capture the transfer.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "domain", + "organizationId", + "authCode", + "paymentMethodId" + ] + } + } + } + } + } + }, + "\/domains\/transfers\/in\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain transfer in", + "operationId": "domainsUpdateTransferIn", + "tags": [ + "domains" + ], + "description": "Finalize a domain transfer-in initiated with Create Transfer In. Verifies that any required 3D Secure authentication is complete, submits the transfer with the authorization code, captures the payment, and sends a confirmation email. Returns a 402 error if authentication is still pending.", + "responses": { + "200": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-transfer-in.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "invoiceId", + "description": "Invoice ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "organizationId": { + "description": "Team ID that owns the domain.", + "type": "string", + "example": "<ORGANIZATION_ID>" + } + }, + "required": [ + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/transfers\/out": { + "post": { + "summary": "Create a domain transfer out.", + "operationId": "domainsCreateTransferOut", + "tags": [ + "domains" + ], + "description": "Initiate a domain transfer-out by generating an authorization code for the specified domain. The returned `authCode` should be provided to the gaining provider to complete the transfer. If the domain has auto-renewal enabled, it will be automatically disabled as part of this operation.", + "responses": { + "202": { + "description": "domainTransferOut", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainTransferOut" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-transfer-out.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domainId": { + "description": "Domain unique ID.", + "type": "string", + "example": "<DOMAIN_ID>" + }, + "organizationId": { + "description": "Organization ID that this domain belongs to.", + "type": "string", + "example": "<ORGANIZATION_ID>" + } + }, + "required": [ + "domainId", + "organizationId" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}": { + "get": { + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", + "tags": [ + "domains" + ], + "description": "Get a domain by its unique ID.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a domain by its unique ID.", + "operationId": "domainsDelete", + "tags": [ + "domains" + ], + "description": "Delete a domain by its unique ID. This endpoint can be used to delete a domain from your project.\nOnce deleted, the domain will no longer be available for use and all associated resources will be removed.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/auto-renewal": { + "patch": { + "summary": "Update domain auto-renewal setting.", + "operationId": "domainsUpdateAutoRenewal", + "tags": [ + "domains" + ], + "description": "Enable or disable auto-renewal for a domain.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-auto-renewal.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "autoRenewal": { + "description": "Whether the domain should renew automatically.", + "type": "boolean", + "example": false + } + }, + "required": [ + "autoRenewal" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/nameservers": { + "patch": { + "summary": "Update the registrar nameservers for the given domain.", + "operationId": "domainsUpdateNameservers", + "tags": [ + "domains" + ], + "description": "Update the registrar nameservers for the given domain. When nameservers are not provided,\nthe domain will be updated to use Appwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "nameservers": { + "description": "Nameservers to set for the domain. Defaults to Appwrite nameservers when omitted.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/domains\/{domainId}\/nameservers\/verification": { + "patch": { + "summary": "Verify which NS records are used and update the domain accordingly.", + "operationId": "domainsVerifyNameservers", + "tags": [ + "domains" + ], + "description": "Verify which NS records are used and update the domain accordingly. This will check the domain's\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/verify-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/google-workspace": { + "get": { + "summary": "Get Google Workspace preset (Records)", + "operationId": "domainsGetPresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "List Google Workspace DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Google Workspace preset (Records)", + "operationId": "domainsCreatePresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "Add Google Workspace DNS records to the domain. This will create the required MX records \nfor Google Workspace email hosting.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/icloud": { + "get": { + "summary": "Get iCloud preset (Records)", + "operationId": "domainsGetPresetICloud", + "tags": [ + "domains" + ], + "description": "List iCloud DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", + "tags": [ + "domains" + ], + "description": "Add iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/mailgun": { + "get": { + "summary": "Get Mailgun preset (Records)", + "operationId": "domainsGetPresetMailgun", + "tags": [ + "domains" + ], + "description": "List Mailgun DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Mailgun preset (Records)", + "operationId": "domainsCreatePresetMailgun", + "tags": [ + "domains" + ], + "description": "Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \nfor Mailgun in the specified domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/outlook": { + "get": { + "summary": "Get Outlook preset (Records)", + "operationId": "domainsGetPresetOutlook", + "tags": [ + "domains" + ], + "description": "List Outlook DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Outlook preset (Records)", + "operationId": "domainsCreatePresetOutlook", + "tags": [ + "domains" + ], + "description": "Add Outlook DNS records to the domain. This will create the required MX records\nfor setting up Outlook email hosting for your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/proton-mail": { + "get": { + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", + "tags": [ + "domains" + ], + "description": "List ProtonMail DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create ProtonMail preset (Records)", + "operationId": "domainsCreatePresetProtonMail", + "tags": [ + "domains" + ], + "description": "Add ProtonMail DNS records to the domain. This will create the required MX records\nfor using ProtonMail with your custom domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/zoho": { + "get": { + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", + "tags": [ + "domains" + ], + "description": "List Zoho DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", + "tags": [ + "domains" + ], + "description": "Add Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records": { + "get": { + "summary": "List DNS records for a given domain.", + "operationId": "domainsListRecords", + "tags": [ + "domains" + ], + "description": "List DNS records for a given domain. You can use this endpoint to list all the DNS records\nassociated with your domain.", + "responses": { + "200": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-records.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. You may filter on attributes such as type, name, value, etc. Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records\/a": { + "post": { + "summary": "Create a new A record for the given domain.", + "operationId": "domainsCreateRecordA", + "tags": [ + "domains" + ], + "description": "Create a new A record for the given domain. A records are used to point a domain name \nto an IPv4 address. The record value should be a valid IPv4 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/a\/{recordId}": { + "put": { + "summary": "Update an existing A record for the given domain.", + "operationId": "domainsUpdateRecordA", + "tags": [ + "domains" + ], + "description": "Update an existing A record for the given domain. This endpoint allows you to modify \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa": { + "post": { + "summary": "Create a new AAAA record for the given domain.", + "operationId": "domainsCreateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \nto your domain. The record will be used to point a hostname to an IPv6 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { + "put": { + "summary": "Update an existing AAAA record for the given domain.", + "operationId": "domainsUpdateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Update an existing AAAA record for the given domain. This endpoint allows you to modify\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias": { + "post": { + "summary": "Create a new ALIAS record for the given domain.", + "operationId": "domainsCreateRecordAlias", + "tags": [ + "domains" + ], + "description": "Create a new ALIAS record for the given domain. This record type can be used to point your domain \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias\/{recordId}": { + "put": { + "summary": "Update an existing ALIAS record for the given domain.", + "operationId": "domainsUpdateRecordAlias", + "tags": [ + "domains" + ], + "description": "Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa": { + "post": { + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", + "tags": [ + "domains" + ], + "description": "Create a new CAA record for the given domain. CAA records are used to specify which \nCertificate Authorities (CAs) are allowed to issue SSL\/TLS certificates for your domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa\/{recordId}": { + "put": { + "summary": "Update an existing CAA record for the given domain.", + "operationId": "domainsUpdateRecordCAA", + "tags": [ + "domains" + ], + "description": "Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname": { + "post": { + "summary": "Create a new CNAME record for the given domain.", + "operationId": "domainsCreateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Create a new CNAME record for the given domain.\n \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname\/{recordId}": { + "put": { + "summary": "Update an existing CNAME record for the given domain.", + "operationId": "domainsUpdateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Update an existing CNAME record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https": { + "post": { + "summary": "Create a new HTTPS record for the given domain.", + "operationId": "domainsCreateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Create a new HTTPS record for the given domain. This record is used to configure HTTPS \nsettings for your domain, enabling secure communication over SSL\/TLS.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https\/{recordId}": { + "put": { + "summary": "Update an existing HTTPS record for the given domain.", + "operationId": "domainsUpdateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", + "tags": [ + "domains" + ], + "description": "Create a new MX record for the given domain. MX records are used to define the mail servers responsible \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx\/{recordId}": { + "put": { + "summary": "Update an existing MX record for the given domain.", + "operationId": "domainsUpdateRecordMX", + "tags": [ + "domains" + ], + "description": "Update an existing MX record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns": { + "post": { + "summary": "Create a new NS record for the given domain.", + "operationId": "domainsCreateRecordNS", + "tags": [ + "domains" + ], + "description": "Create a new NS record for the given domain. NS records specify the nameservers that are used \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", + "tags": [ + "domains" + ], + "description": "Update an existing NS record for the given domain. This endpoint allows you to modify \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv": { + "post": { + "summary": "Create a new SRV record for the given domain.", + "operationId": "domainsCreateRecordSRV", + "tags": [ + "domains" + ], + "description": "Create a new SRV record for the given domain. SRV records are used to define the location \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "weight": { + "description": "Record weight, used to share load between targets of equal priority.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv\/{recordId}": { + "put": { + "summary": "Update an existing SRV record for the given domain.", + "operationId": "domainsUpdateRecordSRV", + "tags": [ + "domains" + ], + "description": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "weight": { + "description": "Record weight, used to share load between targets of equal priority.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt": { + "post": { + "summary": "Create a new TXT record for the given domain.", + "operationId": "domainsCreateRecordTXT", + "tags": [ + "domains" + ], + "description": "Create a new TXT record for the given domain. TXT records can be used \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "default": "", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", + "tags": [ + "domains" + ], + "description": "Update an existing TXT record for the given domain.\n \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/{recordId}": { + "get": { + "summary": "Get a single DNS record for a given domain by record ID.", + "operationId": "domainsGetRecord", + "tags": [ + "domains" + ], + "description": "Get a single DNS record for a given domain by record ID.\n \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", + "tags": [ + "domains" + ], + "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", + "tags": [ + "domains" + ], + "description": "Update the team ID for a specific domain. The caller must administer the current\nteam and be an owner of the destination team.\n\nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "New team unique ID.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/transfers\/status": { + "get": { + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", + "tags": [ + "domains" + ], + "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", + "responses": { + "200": { + "description": "domainTransferStatus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainTransferStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-transfer-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", + "tags": [ + "domains" + ], + "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update the DNS zone for the given domain using the provided zone file content. All parsed records are imported and then the main domain document is returned.", + "operationId": "domainsUpdateZone", + "tags": [ + "domains" + ], + "description": "Update the DNS zone for the given domain using the provided zone file content.\nAll parsed records are imported and then the main domain document is returned.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "DNS zone file content as a string.", + "type": "string", + "example": "<CONTENT>" + } + }, + "required": [ + "content" + ] + } + } + } + } + } + }, + "\/embeddings\/text": { + "post": { + "summary": "Create text embeddings", + "operationId": "embeddingsCreateTextEmbeddings", + "tags": [ + "embeddings" + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "responses": { + "200": { + "description": "Embedding list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/embeddingList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "embeddings", + "demo": "embeddings\/create-text-embeddings.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "embeddings.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createTextEmbeddings", + "namespace": "embeddings", + "platforms": [ + "console", + "server" + ], + "summary": "Create Text Embedding", + "auth": { + "Project": [] + }, + "parameters": [ + "texts", + "model" + ], + "required": [ + "texts" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/embeddingList" + } + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "demo": "embeddings\/create-text-embeddings.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "texts": { + "description": "Array of text to generate embeddings.", + "type": "array", + "example": [ + "Appwrite helps developers build applications.", + "Find documents with semantic search." + ], + "items": { + "type": "string" + } + }, + "model": { + "description": "The embedding model to use for generating vector embeddings.", + "type": "string", + "default": "nomic-embed-text", + "example": "nomic-embed-text", + "title": "EmbeddingModel", + "oneOf": [ + { + "type": "string", + "enum": [ + "nomic-embed-text" + ], + "title": "nomic-embed-text" + }, + { + "type": "string", + "enum": [ + "all-minilm" + ], + "title": "all-minilm" + } + ] + } + }, + "required": [ + "texts" + ] + } + } + } + } + } + }, + "\/functions": { + "get": { + "summary": "List functions", + "operationId": "functionsList", + "tags": [ + "functions" + ], + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Functions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/functionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", + "tags": [ + "functions" + ], + "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", + "responses": { + "201": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "functionId": { + "description": "Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<FUNCTION_ID>" + }, + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Function maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "<ENTRYPOINT>" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "<COMMANDS>" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] + } + } + } + } + } + }, + "\/functions\/runtimes": { + "get": { + "summary": "List runtimes", + "operationId": "functionsListRuntimes", + "tags": [ + "functions" + ], + "description": "Get a list of all runtimes that are currently active on your instance.", + "responses": { + "200": { + "description": "Runtimes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/runtimeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-runtimes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "functionsListSpecifications", + "tags": [ + "functions" + ], + "description": "List allowed function specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/templates": { + "get": { + "summary": "List templates", + "operationId": "functionsListTemplates", + "tags": [ + "functions" + ], + "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "responses": { + "200": { + "description": "Function Templates List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateFunctionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "functions\/list-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "runtimes", + "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "Runtime", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "useCases", + "description": "List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "FunctionTemplateUseCase", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "starter" + ], + "title": "starter" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "ai" + ], + "title": "ai" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "utilities" + ], + "title": "utilities" + }, + { + "type": "string", + "enum": [ + "dev-tools" + ], + "title": "dev-tools" + }, + { + "type": "string", + "enum": [ + "auth" + ], + "title": "auth" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "limit", + "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/templates\/{templateId}": { + "get": { + "summary": "Get function template", + "operationId": "functionsGetTemplate", + "tags": [ + "functions" + ], + "description": "Get a function template using ID. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "responses": { + "200": { + "description": "Template Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateFunction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "functions\/get-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Template ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEMPLATE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}": { + "get": { + "summary": "Get function", + "operationId": "functionsGet", + "tags": [ + "functions" + ], + "description": "Get a function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", + "tags": [ + "functions" + ], + "description": "Update function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "<ENTRYPOINT>" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "<COMMANDS>" + }, + "scopes": { + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function", + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "tags": [ + "functions" + ], + "description": "Delete a function by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", + "tags": [ + "functions" + ], + "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update-function-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "functionsListDeployments", + "tags": [ + "functions" + ], + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "tags": [ + "functions" + ], + "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "entrypoint": { + "description": "Entrypoint File.", + "type": "string", + "example": "<ENTRYPOINT>", + "nullable": true + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "example": "<COMMANDS>", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "example": false + } + }, + "required": [ + "code", + "activate" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", + "tags": [ + "functions" + ], + "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "buildId": { + "description": "Build unique ID.", + "type": "string", + "default": "", + "example": "<BUILD_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/functions\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "<REPOSITORY>" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "<OWNER>" + }, + "rootDirectory": { + "description": "Path to function code in the template repo.", + "type": "string", + "example": "<ROOT_DIRECTORY>" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "commit", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "functionsGetDeployment", + "tags": [ + "functions" + ], + "description": "Get a function deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", + "tags": [ + "functions" + ], + "description": "Delete a code deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", + "tags": [ + "functions" + ], + "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "functions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", + "tags": [ + "functions" + ], + "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/executions": { + "get": { + "summary": "List executions", + "operationId": "functionsListExecutions", + "tags": [ + "functions" + ], + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/list-executions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "tags": [ + "functions" + ], + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", + "responses": { + "201": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "description": "HTTP body of execution. Default value is empty string.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "async": { + "description": "Execute code in the background. Default value is false.", + "type": "boolean", + "default": false, + "example": false + }, + "path": { + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "type": "string", + "default": "\/", + "example": "<PATH>" + }, + "method": { + "description": "HTTP method of execution. Default value is POST.", + "type": "string", + "default": "POST", + "example": "GET", + "title": "ExecutionMethod", + "oneOf": [ + { + "type": "string", + "enum": [ + "GET" + ], + "title": "GET" + }, + { + "type": "string", + "enum": [ + "POST" + ], + "title": "POST" + }, + { + "type": "string", + "enum": [ + "PUT" + ], + "title": "PUT" + }, + { + "type": "string", + "enum": [ + "PATCH" + ], + "title": "PATCH" + }, + { + "type": "string", + "enum": [ + "DELETE" + ], + "title": "DELETE" + }, + { + "type": "string", + "enum": [ + "OPTIONS" + ], + "title": "OPTIONS" + }, + { + "type": "string", + "enum": [ + "HEAD" + ], + "title": "HEAD" + } + ] + }, + "headers": { + "description": "HTTP headers of execution. Defaults to empty.", + "type": "object", + "default": {}, + "example": {} + }, + "scheduledAt": { + "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", + "type": "string", + "example": "<SCHEDULED_AT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions\/{executionId}": { + "get": { + "summary": "Get execution", + "operationId": "functionsGetExecution", + "tags": [ + "functions" + ], + "description": "Get a function execution log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", + "tags": [ + "functions" + ], + "description": "Delete a function execution by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/delete-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "functionsListVariables", + "tags": [ + "functions" + ], + "description": "Get a list of all variables of a specific function.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", + "tags": [ + "functions" + ], + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "functionsGetVariable", + "tags": [ + "functions" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", + "tags": [ + "functions" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", + "tags": [ + "functions" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "query { localeGet { ip } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/growth\/conversations": { + "post": { + "summary": "Create a conversation", + "operationId": "growthCreateConversation", + "tags": [ + "growth" + ], + "description": "Create a conversation with the Appwrite team: support requests, product and docs feedback, enterprise, startup and partner applications, and event sponsorship requests. Signed in console users are identified by their session or JWT; everyone else must pass an email. Attach a file of up to 5MB to support and feedback conversations.", + "responses": { + "201": { + "description": "Growth Conversation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/growthConversation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "growth\/create-conversation.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip},type:{param-type}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Conversation type.", + "type": "string", + "example": "support", + "title": "ConversationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "support" + ], + "title": "support" + }, + { + "type": "string", + "enum": [ + "feedback" + ], + "title": "feedback" + }, + { + "type": "string", + "enum": [ + "docs" + ], + "title": "docs" + }, + { + "type": "string", + "enum": [ + "enterprise" + ], + "title": "enterprise" + }, + { + "type": "string", + "enum": [ + "startup" + ], + "title": "startup" + }, + { + "type": "string", + "enum": [ + "partner" + ], + "title": "partner" + }, + { + "type": "string", + "enum": [ + "sponsorship" + ], + "title": "sponsorship" + } + ] + }, + "email": { + "description": "Email address to reply to. Required without a console session, ignored with one.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "name": { + "description": "Name of the person filing the conversation. Required for enterprise, startup, partner and sponsorship.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "subject": { + "description": "Conversation subject.", + "type": "string", + "default": "", + "example": "<SUBJECT>" + }, + "message": { + "description": "Conversation message. Required for support, feedback, enterprise and partner.", + "type": "string", + "default": "", + "example": "<MESSAGE>" + }, + "organizationId": { + "description": "Organization ID the conversation is about. Kept only when the session user is a member.", + "type": "string", + "default": "", + "example": "<ORGANIZATION_ID>" + }, + "projectId": { + "description": "Project ID the conversation is about. Kept only when it belongs to the kept organization.", + "type": "string", + "default": "", + "example": "<PROJECT_ID>" + }, + "attributes": { + "description": "Additional attributes for the conversation type, as an object or a JSON string.", + "type": "object", + "default": {}, + "example": {} + }, + "attachment": { + "description": "File attachment, support and feedback only, max 5MB.", + "type": "string", + "default": [], + "format": "binary" + } + }, + "required": [ + "type" + ] + }, + "examples": { + "support": { + "summary": "Ask for support", + "value": { + "type": "support", + "email": "walter.obrien@example.com", + "subject": "Custom domain stuck on verifying", + "message": "The domain has been verifying for two hours.", + "projectId": "<PROJECT_ID>" + } + }, + "feedback": { + "summary": "Share product feedback", + "value": { + "type": "feedback", + "email": "walter.obrien@example.com", + "message": "The usage page would help more with a daily breakdown.", + "attributes": { + "npsScore": 9 + } + } + }, + "docs": { + "summary": "Rate a docs page", + "value": { + "type": "docs", + "email": "walter.obrien@example.com", + "attributes": { + "rating": "positive", + "route": "\/docs\/products\/auth" + } + } + }, + "enterprise": { + "summary": "Contact sales about Enterprise", + "value": { + "type": "enterprise", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "message": "We need SSO and a dedicated region.", + "attributes": { + "companyName": "Acme", + "companySize": "500-1000", + "companyWebsite": "https:\/\/acme.example" + } + } + }, + "startup": { + "summary": "Apply to the startups program", + "value": { + "type": "startup", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "attributes": { + "companyName": "Acme", + "companyUrl": "https:\/\/acme.example" + } + } + }, + "partner": { + "summary": "Apply to become a partner", + "value": { + "type": "partner", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "message": "We build Appwrite projects for agencies.", + "attributes": { + "companyName": "Acme", + "companyUrl": "https:\/\/acme.example" + } + } + }, + "sponsorship": { + "summary": "Request an event sponsorship", + "value": { + "type": "sponsorship", + "email": "walter.obrien@example.com", + "name": "Walter O'Brien", + "attributes": { + "eventName": "Acme Dev Summit", + "eventDate": "2026-11-14", + "eventType": "in person", + "socialHandles": "@acme", + "estimatedAttendees": 300, + "eventPublicWebLink": "https:\/\/summit.acme.example" + } + } + } + } + } + } + } + } + }, + "\/growth\/installations": { + "post": { + "summary": "Record a self-hosted installation", + "operationId": "growthCreateInstallation", + "tags": [ + "growth" + ], + "description": "Record a self-hosted installation. Every report is stored as its own row; the admin email is optional because headless CLI installs create no account.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "growth\/create-installation.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},domain:{param-domain}", + "url:{url},ip:{ip}" + ], + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Admin email from the installation, when an account was created.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "name": { + "description": "Admin name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "version": { + "description": "Appwrite version.", + "type": "string", + "default": "", + "example": "<VERSION>" + }, + "domain": { + "description": "Installation domain.", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "database": { + "description": "Database adapter.", + "type": "string", + "default": "", + "example": "<DATABASE>" + }, + "hostIp": { + "description": "Resolved installation host IP address.", + "type": "string", + "default": "", + "example": "<HOST_IP>" + }, + "userAgent": { + "description": "Installation user agent.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + }, + "os": { + "description": "Installation operating system.", + "type": "string", + "default": "", + "example": "<OS>" + }, + "arch": { + "description": "Installation CPU architecture.", + "type": "string", + "default": "", + "example": "<ARCH>" + }, + "cpus": { + "description": "Installation CPU count.", + "type": "integer", + "format": "int32" + }, + "ram": { + "description": "Installation RAM in MB.", + "type": "integer", + "format": "int32" + } + } + } + } + } + } + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "tags": [ + "locale" + ], + "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "responses": { + "200": { + "description": "Locale", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/locale" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "tags": [ + "locale" + ], + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "responses": { + "200": { + "description": "Locale codes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/localeCodeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "tags": [ + "locale" + ], + "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Continents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/continentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "tags": [ + "locale" + ], + "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "tags": [ + "locale" + ], + "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-eu.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "tags": [ + "locale" + ], + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Phones List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/phoneList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "tags": [ + "locale" + ], + "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Currencies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/currencyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "tags": [ + "locale" + ], + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "responses": { + "200": { + "description": "Languages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/languageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/manager\/blocks": { + "post": { + "summary": "Create a new resource block for a project", + "operationId": "managerCreateBlock", + "tags": [ + "manager" + ], + "description": "Creates a new resource block.", + "responses": { + "201": { + "description": "ManagerBlock", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/managerBlock" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/create-block.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "description": "Project ID", + "type": "string", + "example": "<PROJECT_ID>" + }, + "resourceType": { + "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", + "type": "string", + "example": "projects", + "title": "BlockResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + } + ] + }, + "resourceId": { + "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", + "type": "string", + "default": "", + "example": "<RESOURCE_ID>" + }, + "mode": { + "description": "Block mode. Use full to block reads and writes, or readOnly to block database writes only.", + "type": "string", + "default": "full", + "example": "full", + "title": "BlockMode", + "oneOf": [ + { + "type": "string", + "enum": [ + "full" + ], + "title": "full" + }, + { + "type": "string", + "enum": [ + "readonly" + ], + "title": "readonly" + } + ] + }, + "reason": { + "description": "Optional reason why the resource is blocked", + "type": "string", + "default": "", + "example": "<REASON>" + }, + "expiredAt": { + "description": "Optional expiration date for the block", + "type": "string", + "default": "", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + } + }, + "required": [ + "projectId", + "resourceType" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete resource blocks for a project", + "operationId": "managerDeleteBlock", + "tags": [ + "manager" + ], + "description": "Deletes resource blocks for a project.", + "responses": { + "200": { + "description": "ManagerBlockDelete", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/managerBlockDelete" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/delete-block.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "query" + }, + { + "name": "resourceType", + "description": "Resource type to unblock", + "required": true, + "schema": { + "type": "string", + "example": "projects", + "title": "BlockResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects" + ], + "title": "projects" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "subscribers" + ], + "title": "subscribers" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + } + ] + }, + "in": "query" + }, + { + "name": "resourceId", + "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", + "required": false, + "schema": { + "type": "string", + "example": "<RESOURCE_ID>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/manager\/blocks\/{projectId}": { + "get": { + "summary": "List all resource blocks for a project", + "operationId": "managerListBlocks", + "tags": [ + "manager" + ], + "description": "Lists all resource blocks for a project.", + "responses": { + "200": { + "description": "Manager blocks list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/managerBlockList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "manager\/list-blocks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/manager\/cache": { + "delete": { + "summary": "Clear internal cache", + "operationId": "managerDeleteCache", + "tags": [ + "manager" + ], + "description": "Clears internal cache.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "cache", + "demo": "manager\/delete-cache.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "parameters": [ + { + "name": "region", + "description": "Target region.", + "required": false, + "schema": { + "type": "string", + "example": "fra", + "title": "Region", + "oneOf": [ + { + "type": "string", + "enum": [ + "fra" + ], + "title": "fra" + }, + { + "type": "string", + "enum": [ + "nyc" + ], + "title": "nyc" + }, + { + "type": "string", + "enum": [ + "syd" + ], + "title": "syd" + }, + { + "type": "string", + "enum": [ + "sfo" + ], + "title": "sfo" + }, + { + "type": "string", + "enum": [ + "sgp" + ], + "title": "sgp" + }, + { + "type": "string", + "enum": [ + "tor" + ], + "title": "tor" + } + ] + }, + "in": "query" + }, + { + "name": "cache", + "description": "Cache target.", + "required": false, + "schema": { + "type": "string", + "example": "cache", + "title": "CacheTarget", + "oneOf": [ + { + "type": "string", + "enum": [ + "cache" + ], + "title": "cache" + }, + { + "type": "string", + "enum": [ + "timelimit" + ], + "title": "timelimit" + }, + { + "type": "string", + "enum": [ + "locks" + ], + "title": "locks" + }, + { + "type": "string", + "enum": [ + "pubsub" + ], + "title": "pubsub" + }, + { + "type": "string", + "enum": [ + "queue" + ], + "title": "queue" + }, + { + "type": "string", + "enum": [ + "all" + ], + "title": "all" + } + ], + "default": "cache" + }, + "in": "query" + }, + { + "name": "all", + "description": "Clear the entire selected cache target.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + }, + { + "name": "database", + "description": "Database cache scope.", + "required": false, + "schema": { + "type": "string", + "example": "console", + "title": "CacheDatabase", + "oneOf": [ + { + "type": "string", + "enum": [ + "console" + ], + "title": "console" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + } + ], + "default": "console" + }, + "in": "query" + }, + { + "name": "projectId", + "description": "Project ID for project database cache.", + "required": false, + "schema": { + "type": "string", + "example": "<PROJECT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": false, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": false, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/manager\/organizations\/status": { + "patch": { + "summary": "Update an organization status by ID", + "operationId": "managerUpdateOrganizationStatus", + "tags": [ + "manager" + ], + "description": "Blocks or unblocks an organization, the same way a billing-limit block does. Blocking makes the organization read-only, disables its backup policies and spins down its dedicated databases.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "organizations", + "demo": "manager\/update-organization-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Organization ID.", + "type": "string", + "example": "<TEAM_ID>" + }, + "status": { + "description": "Organization status. Set to `false` to block and `true` to unblock.", + "type": "boolean", + "example": false + }, + "reason": { + "description": "Optional reason when blocking, kept in the audit trail.", + "type": "string", + "default": "", + "example": "<REASON>" + } + }, + "required": [ + "teamId", + "status" + ] + } + } + } + } + } + }, + "\/manager\/users\/status": { + "patch": { + "summary": "Update a user status by ID or email", + "operationId": "managerUpdateUserStatus", + "tags": [ + "manager" + ], + "description": "Updates a console user status using a user ID or email address.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "manager\/update-user-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "manager", + "console" + ], + "packaging": false, + "public": true + }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "email": { + "description": "User email address.", + "type": "string", + "default": "", + "example": "<EMAIL>" + }, + "status": { + "description": "User status. Set to `false` to block and `true` to unblock.", + "type": "boolean", + "example": false + }, + "reason": { + "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", + "type": "string", + "default": "", + "example": "<REASON>" + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/messaging\/messages": { + "get": { + "summary": "List messages", + "operationId": "messagingListMessages", + "tags": [ + "messaging" + ], + "description": "Get a list of all messages from the current Appwrite project.", + "responses": { + "200": { + "description": "Message list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/messageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/list-messages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType, users, targets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", + "tags": [ + "messaging" + ], + "description": "Create a new email message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>" + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "cc": { + "description": "Array of target IDs to be added as CC.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "bcc": { + "description": "Array of target IDs to be added as BCC.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "attachments": { + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "type": "array", + "default": [], + "items": { + "type": "string" + }, + "nullable": true + }, + "replyToEmail": { + "description": "Email address to reply to. If not set, defaults to the sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name of the reply to recipient. If not set, defaults to the sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + }, + "examples": { + "draft": { + "summary": "Create an email draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "subject": "Welcome", + "content": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", + "tags": [ + "messaging" + ], + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "cc": { + "description": "Array of target IDs to be added as CC.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "bcc": { + "description": "Array of target IDs to be added as BCC.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "attachments": { + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "replyToEmail": { + "description": "Email address to reply to. Pass an empty string to restore the provider or sender default.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Name of the reply to recipient. Pass an empty string to restore the provider or sender default.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", + "tags": [ + "messaging" + ], + "description": "Create a new push notification.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "title": { + "description": "Title for push notification.", + "type": "string", + "default": "", + "example": "<TITLE>" + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "data": { + "description": "Additional key-value pair data for push notification.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "action": { + "description": "Action for push notification.", + "type": "string", + "default": "", + "example": "<ACTION>" + }, + "image": { + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "type": "string", + "default": "", + "example": "<ID1:ID2>" + }, + "icon": { + "description": "Icon for push notification. Available only for Android and Web Platform.", + "type": "string", + "default": "", + "example": "<ICON>" + }, + "sound": { + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "type": "string", + "default": "", + "example": "<SOUND>" + }, + "color": { + "description": "Color for push notification. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<COLOR>" + }, + "tag": { + "description": "Tag for push notification. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<TAG>" + }, + "badge": { + "description": "Badge for push notification. Available only for iOS Platform.", + "type": "integer", + "default": -1, + "example": 1, + "format": "int32" + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "contentAvailable": { + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "type": "boolean", + "default": false, + "example": false + }, + "critical": { + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "type": "boolean", + "default": false, + "example": false + }, + "priority": { + "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", + "type": "string", + "default": "high", + "example": "normal", + "title": "MessagePriority", + "oneOf": [ + { + "type": "string", + "enum": [ + "normal" + ], + "title": "normal" + }, + { + "type": "string", + "enum": [ + "high" + ], + "title": "high" + } + ] + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<CHANNEL_ID>" + } + }, + "required": [ + "messageId" + ] + }, + "examples": { + "draft": { + "summary": "Create a push notification draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "title": "Welcome", + "body": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", + "tags": [ + "messaging" + ], + "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "description": "Title for push notification.", + "type": "string", + "example": "<TITLE>", + "nullable": true + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "example": "<BODY>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "data": { + "description": "Additional Data for push notification.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "action": { + "description": "Action for push notification.", + "type": "string", + "example": "<ACTION>", + "nullable": true + }, + "image": { + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "type": "string", + "example": "<ID1:ID2>", + "nullable": true + }, + "icon": { + "description": "Icon for push notification. Available only for Android and Web platforms.", + "type": "string", + "example": "<ICON>", + "nullable": true + }, + "sound": { + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "type": "string", + "example": "<SOUND>", + "nullable": true + }, + "color": { + "description": "Color for push notification. Available only for Android platforms.", + "type": "string", + "example": "<COLOR>", + "nullable": true + }, + "tag": { + "description": "Tag for push notification. Available only for Android platforms.", + "type": "string", + "example": "<TAG>", + "nullable": true + }, + "badge": { + "description": "Badge for push notification. Available only for iOS platforms.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "contentAvailable": { + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "type": "boolean", + "example": false, + "nullable": true + }, + "critical": { + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "type": "boolean", + "example": false, + "nullable": true + }, + "priority": { + "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", + "type": "string", + "example": "normal", + "title": "MessagePriority", + "oneOf": [ + { + "type": "string", + "enum": [ + "normal" + ], + "title": "normal" + }, + { + "type": "string", + "enum": [ + "high" + ], + "title": "high" + } + ], + "nullable": true + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Pass an empty string to clear it. Available only for Android platforms.", + "type": "string", + "example": "<CHANNEL_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", + "tags": [ + "messaging" + ], + "description": "Create a new SMS message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + } + }, + { + "name": "createSMS", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "content": { + "description": "SMS Content.", + "type": "string", + "example": "<CONTENT>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + }, + "examples": { + "draft": { + "summary": "Create an SMS draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "content": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", + "tags": [ + "messaging" + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + } + }, + { + "name": "updateSMS", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/{messageId}": { + "get": { + "summary": "Get message", + "operationId": "messagingGetMessage", + "tags": [ + "messaging" + ], + "description": "Get a message by its unique ID.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/get-message.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", + "tags": [ + "messaging" + ], + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/targets": { + "get": { + "summary": "List message targets", + "operationId": "messagingListTargets", + "tags": [ + "messaging" + ], + "description": "Get a list of the targets associated with a message.", + "responses": { + "200": { + "description": "Target list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/targetList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers": { + "get": { + "summary": "List providers", + "operationId": "messagingListProviders", + "tags": [ + "messaging" + ], + "description": "Get a list of all providers from the current Appwrite project.", + "responses": { + "200": { + "description": "Provider list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/list-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers\/apns": { + "post": { + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Apple Push Notification service provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "authKey": { + "description": "APNS authentication key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "authKeyId": { + "description": "APNS authentication key ID.", + "type": "string", + "default": "", + "example": "<AUTH_KEY_ID>" + }, + "teamId": { + "description": "APNS team ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + }, + "bundleId": { + "description": "APNS bundle ID.", + "type": "string", + "default": "", + "example": "<BUNDLE_ID>" + }, + "sandbox": { + "description": "Use APNS sandbox environment.", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "authKey": { + "description": "APNS authentication key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "authKeyId": { + "description": "APNS authentication key ID.", + "type": "string", + "default": "", + "example": "<AUTH_KEY_ID>" + }, + "teamId": { + "description": "APNS team ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + }, + "bundleId": { + "description": "APNS bundle ID.", + "type": "string", + "default": "", + "example": "<BUNDLE_ID>" + }, + "sandbox": { + "description": "Use APNS sandbox environment.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/appwrite": { + "post": { + "summary": "Create Appwrite provider", + "operationId": "messagingCreateAppwriteProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Appwrite push provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-appwrite-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "qos": { + "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/appwrite\/{providerId}": { + "patch": { + "summary": "Update Appwrite provider", + "operationId": "messagingUpdateAppwriteProvider", + "tags": [ + "messaging" + ], + "description": "Update an Appwrite push provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-appwrite-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "qos": { + "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/fcm": { + "post": { + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "serviceAccountJSON": { + "description": "FCM service account JSON.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "serviceAccountJSON": { + "description": "FCM service account JSON.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Mailgun provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Mailgun API Key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "domain": { + "description": "Mailgun Domain.", + "type": "string", + "default": "", + "example": "example.com" + }, + "isEuRegion": { + "description": "Set as EU region.", + "type": "boolean", + "example": false, + "nullable": true + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Update a Mailgun provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "apiKey": { + "description": "Mailgun API Key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "domain": { + "description": "Mailgun Domain.", + "type": "string", + "default": "", + "example": "example.com" + }, + "isEuRegion": { + "description": "Set as EU region.", + "type": "boolean", + "example": false, + "nullable": true + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/msg91": { + "post": { + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Create a new MSG91 provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "templateId": { + "description": "Msg91 template ID", + "type": "string", + "default": "", + "example": "<TEMPLATE_ID>" + }, + "senderId": { + "description": "Msg91 sender ID.", + "type": "string", + "default": "", + "example": "<SENDER_ID>" + }, + "authKey": { + "description": "Msg91 auth key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Update a MSG91 provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "templateId": { + "description": "Msg91 template ID.", + "type": "string", + "default": "", + "example": "<TEMPLATE_ID>" + }, + "senderId": { + "description": "Msg91 sender ID.", + "type": "string", + "default": "", + "example": "<SENDER_ID>" + }, + "authKey": { + "description": "Msg91 auth key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/resend": { + "post": { + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Resend provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-resend-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Resend API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", + "tags": [ + "messaging" + ], + "description": "Update a Resend provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-resend-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Resend API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid": { + "post": { + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Sendgrid provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Sendgrid API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Update a Sendgrid provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Sendgrid API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/ses": { + "post": { + "summary": "Create Amazon SES provider", + "operationId": "messagingCreateSesProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Amazon SES provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-ses-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "accessKey": { + "description": "AWS access key ID.", + "type": "string", + "default": "", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "AWS secret access key.", + "type": "string", + "default": "", + "example": "<SECRET_KEY>" + }, + "region": { + "description": "AWS region, for example us-east-1.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/ses\/{providerId}": { + "patch": { + "summary": "Update Amazon SES provider", + "operationId": "messagingUpdateSesProvider", + "tags": [ + "messaging" + ], + "description": "Update an Amazon SES provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-ses-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "accessKey": { + "description": "AWS access key ID.", + "type": "string", + "default": "", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "AWS secret access key.", + "type": "string", + "default": "", + "example": "<SECRET_KEY>" + }, + "region": { + "description": "AWS region, for example us-east-1.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", + "tags": [ + "messaging" + ], + "description": "Create a new SMTP provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-smtp-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + }, + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + } + }, + { + "name": "createSMTPProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "host": { + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "type": "string", + "example": "<HOST>" + }, + "port": { + "description": "The default SMTP server port.", + "type": "integer", + "default": 587, + "example": 587, + "format": "int32" + }, + "username": { + "description": "Authentication username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "password": { + "description": "Authentication password.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "encryption": { + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "type": "string", + "example": "none", + "title": "SmtpEncryption", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + }, + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + } + ] + }, + "autoTLS": { + "description": "Enable SMTP AutoTLS feature.", + "type": "boolean", + "default": true, + "example": false + }, + "mailer": { + "description": "The value to use for the X-Mailer header.", + "type": "string", + "default": "", + "example": "<MAILER>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/smtp\/{providerId}": { + "patch": { + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", + "tags": [ + "messaging" + ], + "description": "Update a SMTP provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-smtp-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + }, + "methods": [ + { + "name": "updateSmtpProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + } + }, + { + "name": "updateSMTPProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "host": { + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "type": "string", + "default": "", + "example": "<HOST>" + }, + "port": { + "description": "SMTP port.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "username": { + "description": "Authentication username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "password": { + "description": "Authentication password.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "encryption": { + "description": "Encryption type. Can be 'ssl' or 'tls'", + "type": "string", + "example": "none", + "title": "SmtpEncryption", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + }, + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + } + ] + }, + "autoTLS": { + "description": "Enable SMTP AutoTLS feature.", + "type": "boolean", + "example": false, + "nullable": true + }, + "mailer": { + "description": "The value to use for the X-Mailer header.", + "type": "string", + "default": "", + "example": "<MAILER>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/telesign": { + "post": { + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Telesign provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "customerId": { + "description": "Telesign customer ID.", + "type": "string", + "default": "", + "example": "<CUSTOMER_ID>" + }, + "apiKey": { + "description": "Telesign API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/telesign\/{providerId}": { + "patch": { + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", + "tags": [ + "messaging" + ], + "description": "Update a Telesign provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "customerId": { + "description": "Telesign customer ID.", + "type": "string", + "default": "", + "example": "<CUSTOMER_ID>" + }, + "apiKey": { + "description": "Telesign API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Textmagic provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "username": { + "description": "Textmagic username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "apiKey": { + "description": "Textmagic apiKey.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", + "tags": [ + "messaging" + ], + "description": "Update a Textmagic provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "username": { + "description": "Textmagic username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "apiKey": { + "description": "Textmagic apiKey.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/twilio": { + "post": { + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Twilio provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "<FROM>" + }, + "accountSid": { + "description": "Twilio account secret ID.", + "type": "string", + "default": "", + "example": "<ACCOUNT_SID>" + }, + "authToken": { + "description": "Twilio authentication token.", + "type": "string", + "default": "", + "example": "<AUTH_TOKEN>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/twilio\/{providerId}": { + "patch": { + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", + "tags": [ + "messaging" + ], + "description": "Update a Twilio provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "accountSid": { + "description": "Twilio account secret ID.", + "type": "string", + "default": "", + "example": "<ACCOUNT_SID>" + }, + "authToken": { + "description": "Twilio authentication token.", + "type": "string", + "default": "", + "example": "<AUTH_TOKEN>" + }, + "from": { + "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/vonage": { + "post": { + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Vonage provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-vonage-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "apiKey": { + "description": "Vonage API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "apiSecret": { + "description": "Vonage API secret.", + "type": "string", + "default": "", + "example": "<API_SECRET>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", + "tags": [ + "messaging" + ], + "description": "Update a Vonage provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-vonage-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Vonage API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "apiSecret": { + "description": "Vonage API secret.", + "type": "string", + "default": "", + "example": "<API_SECRET>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/{providerId}": { + "get": { + "summary": "Get provider", + "operationId": "messagingGetProvider", + "tags": [ + "messaging" + ], + "description": "Get a provider by its unique ID.\n", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/get-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "tags": [ + "messaging" + ], + "description": "Delete a provider by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/delete-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", + "tags": [ + "messaging" + ], + "description": "Get a list of all topics from the current Appwrite project.", + "responses": { + "200": { + "description": "Topic list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topicList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/list-topics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, description, emailTotal, smsTotal, pushTotal", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create topic", + "operationId": "messagingCreateTopic", + "tags": [ + "messaging" + ], + "description": "Create a new topic.", + "responses": { + "201": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/create-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topicId": { + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "type": "string", + "example": "<TOPIC_ID>" + }, + "name": { + "description": "Topic Name.", + "type": "string", + "example": "<NAME>" + }, + "subscribe": { + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [ + "users" + ], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "qos": { + "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "topicId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", + "tags": [ + "messaging" + ], + "description": "Get a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/get-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update topic", + "operationId": "messagingUpdateTopic", + "tags": [ + "messaging" + ], + "description": "Update a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/update-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Topic Name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "subscribe": { + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "example": [ + "any" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "qos": { + "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", + "tags": [ + "messaging" + ], + "description": "Delete a topic by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/delete-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", + "tags": [ + "messaging" + ], + "description": "Get a list of all subscribers from the current Appwrite project.", + "responses": { + "200": { + "description": "Subscriber list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriberList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/list-subscribers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", + "tags": [ + "messaging" + ], + "description": "Create a new subscriber.", + "responses": { + "201": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/create-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "targetId": { + "description": "Target ID. The target ID to link to the specified Topic ID.", + "type": "string", + "example": "<TARGET_ID>" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", + "tags": [ + "messaging" + ], + "description": "Get a subscriber by its unique ID.\n", + "responses": { + "200": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/get-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", + "tags": [ + "messaging" + ], + "description": "Delete a subscriber by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/delete-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/migrations": { + "get": { + "summary": "List migrations", + "operationId": "migrationsList", + "tags": [ + "migrations" + ], + "description": "List all migrations in the current project. This endpoint returns a list of all migrations including their status, progress, and any errors that occurred during the migration process.", + "responses": { + "200": { + "description": "Migrations List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, stage, source, destination, resources, resourceId, resourceInternalId, resourceType, parentResourceId, parentResourceInternalId, parentResourceType, destinationResourceId, destinationResourceInternalId, destinationResourceType, statusCounters, resourceData, errors", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/migrations\/appwrite": { + "post": { + "summary": "Create Appwrite migration", + "operationId": "migrationsCreateAppwriteMigration", + "tags": [ + "migrations" + ], + "description": "Migrate data from another Appwrite project to your current project. This endpoint allows you to migrate resources like databases, collections, documents, users, and files from an existing Appwrite project. ", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-appwrite-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "description": "List of resources to migrate", + "type": "array", + "example": [ + "user" + ], + "items": { + "title": "AppwriteMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "team" + ], + "title": "team" + }, + { + "type": "string", + "enum": [ + "membership" + ], + "title": "membership" + }, + { + "type": "string", + "enum": [ + "auth-methods" + ], + "title": "auth-methods" + }, + { + "type": "string", + "enum": [ + "policies" + ], + "title": "policies" + }, + { + "type": "string", + "enum": [ + "oauth2-provider" + ], + "title": "oauth2-provider" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + }, + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "deployment" + ], + "title": "deployment" + }, + { + "type": "string", + "enum": [ + "environment-variable" + ], + "title": "environment-variable" + }, + { + "type": "string", + "enum": [ + "provider" + ], + "title": "provider" + }, + { + "type": "string", + "enum": [ + "topic" + ], + "title": "topic" + }, + { + "type": "string", + "enum": [ + "subscriber" + ], + "title": "subscriber" + }, + { + "type": "string", + "enum": [ + "message" + ], + "title": "message" + }, + { + "type": "string", + "enum": [ + "site" + ], + "title": "site" + }, + { + "type": "string", + "enum": [ + "site-deployment" + ], + "title": "site-deployment" + }, + { + "type": "string", + "enum": [ + "site-variable" + ], + "title": "site-variable" + }, + { + "type": "string", + "enum": [ + "platform" + ], + "title": "platform" + }, + { + "type": "string", + "enum": [ + "api-key" + ], + "title": "api-key" + }, + { + "type": "string", + "enum": [ + "webhook" + ], + "title": "webhook" + }, + { + "type": "string", + "enum": [ + "smtp" + ], + "title": "smtp" + }, + { + "type": "string", + "enum": [ + "backup-policy" + ], + "title": "backup-policy" + }, + { + "type": "string", + "enum": [ + "project-variable" + ], + "title": "project-variable" + }, + { + "type": "string", + "enum": [ + "project-protocols" + ], + "title": "project-protocols" + }, + { + "type": "string", + "enum": [ + "project-labels" + ], + "title": "project-labels" + }, + { + "type": "string", + "enum": [ + "project-services" + ], + "title": "project-services" + }, + { + "type": "string", + "enum": [ + "project-email-template" + ], + "title": "project-email-template" + }, + { + "type": "string", + "enum": [ + "rule" + ], + "title": "rule" + } + ] + } + }, + "endpoint": { + "description": "Source Appwrite endpoint", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "projectId": { + "description": "Source Project ID", + "type": "string", + "example": "<PROJECT_ID>" + }, + "apiKey": { + "description": "Source API Key", + "type": "string", + "example": "<API_KEY>" + }, + "onDuplicate": { + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "type": "string", + "default": "fail", + "example": "fail", + "title": "OnDuplicate", + "oneOf": [ + { + "type": "string", + "enum": [ + "fail" + ], + "title": "fail" + }, + { + "type": "string", + "enum": [ + "skip" + ], + "title": "skip" + }, + { + "type": "string", + "enum": [ + "overwrite" + ], + "title": "overwrite" + } + ] + } + }, + "required": [ + "resources", + "endpoint", + "projectId", + "apiKey" + ] + } + } + } + } + } + }, + "\/migrations\/appwrite\/report": { + "get": { + "summary": "Get Appwrite migration report", + "operationId": "migrationsGetAppwriteReport", + "tags": [ + "migrations" + ], + "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", + "responses": { + "200": { + "description": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get-appwrite-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "title": "AppwriteMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "team" + ], + "title": "team" + }, + { + "type": "string", + "enum": [ + "membership" + ], + "title": "membership" + }, + { + "type": "string", + "enum": [ + "auth-methods" + ], + "title": "auth-methods" + }, + { + "type": "string", + "enum": [ + "policies" + ], + "title": "policies" + }, + { + "type": "string", + "enum": [ + "oauth2-provider" + ], + "title": "oauth2-provider" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + }, + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "deployment" + ], + "title": "deployment" + }, + { + "type": "string", + "enum": [ + "environment-variable" + ], + "title": "environment-variable" + }, + { + "type": "string", + "enum": [ + "provider" + ], + "title": "provider" + }, + { + "type": "string", + "enum": [ + "topic" + ], + "title": "topic" + }, + { + "type": "string", + "enum": [ + "subscriber" + ], + "title": "subscriber" + }, + { + "type": "string", + "enum": [ + "message" + ], + "title": "message" + }, + { + "type": "string", + "enum": [ + "site" + ], + "title": "site" + }, + { + "type": "string", + "enum": [ + "site-deployment" + ], + "title": "site-deployment" + }, + { + "type": "string", + "enum": [ + "site-variable" + ], + "title": "site-variable" + }, + { + "type": "string", + "enum": [ + "platform" + ], + "title": "platform" + }, + { + "type": "string", + "enum": [ + "api-key" + ], + "title": "api-key" + }, + { + "type": "string", + "enum": [ + "webhook" + ], + "title": "webhook" + }, + { + "type": "string", + "enum": [ + "smtp" + ], + "title": "smtp" + }, + { + "type": "string", + "enum": [ + "backup-policy" + ], + "title": "backup-policy" + }, + { + "type": "string", + "enum": [ + "project-variable" + ], + "title": "project-variable" + }, + { + "type": "string", + "enum": [ + "project-protocols" + ], + "title": "project-protocols" + }, + { + "type": "string", + "enum": [ + "project-labels" + ], + "title": "project-labels" + }, + { + "type": "string", + "enum": [ + "project-services" + ], + "title": "project-services" + }, + { + "type": "string", + "enum": [ + "project-email-template" + ], + "title": "project-email-template" + }, + { + "type": "string", + "enum": [ + "rule" + ], + "title": "rule" + } + ] + } + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Appwrite Endpoint", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "projectID", + "description": "Source's Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "query" + }, + { + "name": "key", + "description": "Source's API Key", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "query" + } + ] + } + }, + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", + "tags": [ + "migrations" + ], + "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-csv-export.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID containing the source collection.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "collectionId": { + "description": "Collection ID to export documents from.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "filename": { + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "type": "string", + "example": "<FILENAME>" + }, + "columns": { + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "delimiter": { + "description": "The character that separates each column value. Default is comma.", + "type": "string", + "default": ",", + "example": "<DELIMITER>" + }, + "enclosure": { + "description": "The character that encloses each column value. Default is double quotes.", + "type": "string", + "default": "\"", + "example": "<ENCLOSURE>" + }, + "escape": { + "description": "The escape character for the enclosure character. Default is double quotes.", + "type": "string", + "default": "\"", + "example": "<ESCAPE>" + }, + "header": { + "description": "Whether to include the header row with column names. Default is true.", + "type": "boolean", + "default": true, + "example": false + }, + "notify": { + "description": "Set to true to receive an email when the export is complete. Default is true.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "collectionId", + "filename" + ] + } + } + } + } + } + }, + "\/migrations\/csv\/imports": { + "post": { + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCSVImport", + "tags": [ + "migrations" + ], + "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-csv-import.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "type": "string", + "example": "<BUCKET_ID>" + }, + "fileId": { + "description": "File ID.", + "type": "string", + "example": "<FILE_ID>" + }, + "databaseId": { + "description": "Database ID containing the target collection.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "collectionId": { + "description": "Collection ID to import documents into.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "internalFile": { + "description": "Is the file stored in an internal bucket?", + "type": "boolean", + "default": false, + "example": false + }, + "onDuplicate": { + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "type": "string", + "default": "fail", + "example": "fail", + "title": "OnDuplicate", + "oneOf": [ + { + "type": "string", + "enum": [ + "fail" + ], + "title": "fail" + }, + { + "type": "string", + "enum": [ + "skip" + ], + "title": "skip" + }, + { + "type": "string", + "enum": [ + "overwrite" + ], + "title": "overwrite" + } + ] + } + }, + "required": [ + "bucketId", + "fileId", + "databaseId", + "collectionId" + ] + } + } + } + } + } + }, + "\/migrations\/firebase": { + "post": { + "summary": "Create Firebase migration", + "operationId": "migrationsCreateFirebaseMigration", + "tags": [ + "migrations" + ], + "description": "Migrate data from a Firebase project to your Appwrite project. This endpoint allows you to migrate resources like authentication and other supported services from a Firebase project. ", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-firebase-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "description": "List of resources to migrate", + "type": "array", + "example": [ + "user" + ], + "items": { + "title": "FirebaseMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + } + }, + "serviceAccount": { + "description": "JSON of the Firebase service account credentials", + "type": "string", + "example": "<SERVICE_ACCOUNT>" + } + }, + "required": [ + "resources", + "serviceAccount" + ] + } + } + } + } + } + }, + "\/migrations\/firebase\/report": { + "get": { + "summary": "Get Firebase migration report", + "operationId": "migrationsGetFirebaseReport", + "tags": [ + "migrations" + ], + "description": "Generate a report of the data in a Firebase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", + "responses": { + "200": { + "description": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get-firebase-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "title": "FirebaseMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + }, + "example": [ + "user" + ] + }, + "in": "query" + }, + { + "name": "serviceAccount", + "description": "JSON of the Firebase service account credentials", + "required": true, + "schema": { + "type": "string", + "example": "<SERVICE_ACCOUNT>" + }, + "in": "query" + } + ] + } + }, + "\/migrations\/json\/exports": { + "post": { + "summary": "Export documents to JSON", + "operationId": "migrationsCreateJSONExport", + "tags": [ + "migrations" + ], + "description": "Export documents to a JSON file from your Appwrite database. This endpoint allows you to export documents to a JSON file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.\n", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-json-export.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID containing the source collection.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "collectionId": { + "description": "Collection ID to export documents from.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "filename": { + "description": "The name of the file to be created for the export, excluding the .json extension.", + "type": "string", + "example": "<FILENAME>" + }, + "columns": { + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "notify": { + "description": "Set to true to receive an email when the export is complete. Default is true.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "collectionId", + "filename" + ] + } + } + } + } + } + }, + "\/migrations\/json\/imports": { + "post": { + "summary": "Import documents from a JSON", + "operationId": "migrationsCreateJSONImport", + "tags": [ + "migrations" + ], + "description": "Import documents from a JSON file into your Appwrite database. This endpoint allows you to import documents from a JSON file uploaded to Appwrite Storage bucket.\n", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-json-import.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "type": "string", + "example": "<BUCKET_ID>" + }, + "fileId": { + "description": "File ID.", + "type": "string", + "example": "<FILE_ID>" + }, + "databaseId": { + "description": "Database ID containing the target collection.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "collectionId": { + "description": "Collection ID to import documents into.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "internalFile": { + "description": "Is the file stored in an internal bucket?", + "type": "boolean", + "default": false, + "example": false + }, + "onDuplicate": { + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "type": "string", + "default": "fail", + "example": "fail", + "title": "OnDuplicate", + "oneOf": [ + { + "type": "string", + "enum": [ + "fail" + ], + "title": "fail" + }, + { + "type": "string", + "enum": [ + "skip" + ], + "title": "skip" + }, + { + "type": "string", + "enum": [ + "overwrite" + ], + "title": "overwrite" + } + ] + } + }, + "required": [ + "bucketId", + "fileId", + "databaseId", + "collectionId" + ] + } + } + } + } + } + }, + "\/migrations\/nhost": { + "post": { + "summary": "Create NHost migration", + "operationId": "migrationsCreateNHostMigration", + "tags": [ + "migrations" + ], + "description": "Migrate data from an NHost project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from an NHost project. ", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-n-host-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "description": "List of resources to migrate", + "type": "array", + "example": [ + "user" + ], + "items": { + "title": "NHostMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + } + }, + "subdomain": { + "description": "Source's Subdomain", + "type": "string", + "example": "<SUBDOMAIN>" + }, + "region": { + "description": "Source's Region", + "type": "string", + "example": "<REGION>" + }, + "adminSecret": { + "description": "Source's Admin Secret", + "type": "string", + "example": "<ADMIN_SECRET>" + }, + "database": { + "description": "Source's Database Name", + "type": "string", + "example": "<DATABASE>" + }, + "username": { + "description": "Source's Database Username", + "type": "string", + "example": "<USERNAME>" + }, + "password": { + "description": "Source's Database Password", + "type": "string", + "example": "password", + "format": "password" + }, + "port": { + "description": "Source's Database Port", + "type": "integer", + "default": 5432, + "example": 5432, + "format": "int32" + } + }, + "required": [ + "resources", + "subdomain", + "region", + "adminSecret", + "database", + "username", + "password" + ] + } + } + } + } + } + }, + "\/migrations\/nhost\/report": { + "get": { + "summary": "Get NHost migration report", + "operationId": "migrationsGetNHostReport", + "tags": [ + "migrations" + ], + "description": "Generate a detailed report of the data in an NHost project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", + "responses": { + "200": { + "description": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get-n-host-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate.", + "required": true, + "schema": { + "type": "array", + "items": { + "title": "NHostMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + }, + "example": [ + "user" + ] + }, + "in": "query" + }, + { + "name": "subdomain", + "description": "Source's Subdomain.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBDOMAIN>" + }, + "in": "query" + }, + { + "name": "region", + "description": "Source's Region.", + "required": true, + "schema": { + "type": "string", + "example": "<REGION>" + }, + "in": "query" + }, + { + "name": "adminSecret", + "description": "Source's Admin Secret.", + "required": true, + "schema": { + "type": "string", + "example": "<ADMIN_SECRET>" + }, + "in": "query" + }, + { + "name": "database", + "description": "Source's Database Name.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE>" + }, + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "schema": { + "type": "string", + "example": "<USERNAME>" + }, + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "schema": { + "type": "string", + "format": "password", + "example": "password" + }, + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 5432, + "default": 5432 + }, + "in": "query" + } + ] + } + }, + "\/migrations\/supabase": { + "post": { + "summary": "Create Supabase migration", + "operationId": "migrationsCreateSupabaseMigration", + "tags": [ + "migrations" + ], + "description": "Migrate data from a Supabase project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from a Supabase project. ", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/create-supabase-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "description": "List of resources to migrate", + "type": "array", + "example": [ + "user" + ], + "items": { + "title": "SupabaseMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + } + }, + "endpoint": { + "description": "Source's Supabase Endpoint", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "apiKey": { + "description": "Source's API Key", + "type": "string", + "example": "<API_KEY>" + }, + "databaseHost": { + "description": "Source's Database Host", + "type": "string", + "example": "<DATABASE_HOST>" + }, + "username": { + "description": "Source's Database Username", + "type": "string", + "example": "<USERNAME>" + }, + "password": { + "description": "Source's Database Password", + "type": "string", + "example": "password", + "format": "password" + }, + "port": { + "description": "Source's Database Port", + "type": "integer", + "default": 5432, + "example": 5432, + "format": "int32" + } + }, + "required": [ + "resources", + "endpoint", + "apiKey", + "databaseHost", + "username", + "password" + ] + } + } + } + } + } + }, + "\/migrations\/supabase\/report": { + "get": { + "summary": "Get Supabase migration report", + "operationId": "migrationsGetSupabaseReport", + "tags": [ + "migrations" + ], + "description": "Generate a report of the data in a Supabase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", + "responses": { + "200": { + "description": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get-supabase-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "title": "SupabaseMigrationResource", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "user" + ], + "title": "user" + }, + { + "type": "string", + "enum": [ + "database" + ], + "title": "database" + }, + { + "type": "string", + "enum": [ + "table" + ], + "title": "table" + }, + { + "type": "string", + "enum": [ + "column" + ], + "title": "column" + }, + { + "type": "string", + "enum": [ + "index" + ], + "title": "index" + }, + { + "type": "string", + "enum": [ + "row" + ], + "title": "row" + }, + { + "type": "string", + "enum": [ + "document" + ], + "title": "document" + }, + { + "type": "string", + "enum": [ + "attribute" + ], + "title": "attribute" + }, + { + "type": "string", + "enum": [ + "collection" + ], + "title": "collection" + }, + { + "type": "string", + "enum": [ + "bucket" + ], + "title": "bucket" + }, + { + "type": "string", + "enum": [ + "file" + ], + "title": "file" + } + ] + }, + "example": [ + "user" + ] + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Supabase Endpoint.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "apiKey", + "description": "Source's API Key.", + "required": true, + "schema": { + "type": "string", + "example": "<API_KEY>" + }, + "in": "query" + }, + { + "name": "databaseHost", + "description": "Source's Database Host.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_HOST>" + }, + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "schema": { + "type": "string", + "example": "<USERNAME>" + }, + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "schema": { + "type": "string", + "format": "password", + "example": "password" + }, + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 5432, + "default": 5432 + }, + "in": "query" + } + ] + } + }, + "\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "migrationsGet", + "tags": [ + "migrations" + ], + "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", + "responses": { + "200": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "migrationId", + "description": "Migration unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update retry migration", + "operationId": "migrationsRetry", + "tags": [ + "migrations" + ], + "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", + "responses": { + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/retry.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "migrationId", + "description": "Migration unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete migration", + "operationId": "migrationsDelete", + "tags": [ + "migrations" + ], + "description": "Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "migrations\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo": { + "get": { + "summary": "List databases", + "operationId": "mongoList", + "tags": [ + "mongo" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "mongoCreate", + "tags": [ + "mongo" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/mongo\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "mongoListSpecifications", + "tags": [ + "mongo" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mongo\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "mongoGet", + "tags": [ + "mongo" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "mongoUpdate", + "tags": [ + "mongo" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "mongoDelete", + "tags": [ + "mongo" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "mongoListBackups", + "tags": [ + "mongo" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "mongoCreateBackup", + "tags": [ + "mongo" + ], + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", + "responses": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "mongoListBackupPolicies", + "tags": [ + "mongo" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "mongoCreateBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "mongoGetBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "mongoUpdateBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "mongoDeleteBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "mongoUpdateBackupStorage", + "tags": [ + "mongo" + ], + "description": "Configure off-cluster backup storage for a dedicated database. Supports S3, GCS, and Azure Blob Storage destinations. Backups will be stored to the configured destination in addition to on-cluster storage.", + "responses": { + "200": { + "description": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "mongoGetBackup", + "tags": [ + "mongo" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "mongoDeleteBackup", + "tags": [ + "mongo" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "mongoListBranches", + "tags": [ + "mongo" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "mongoCreateBranch", + "tags": [ + "mongo" + ], + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "mongoDeleteBranch", + "tags": [ + "mongo" + ], + "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "mongoUpdateCredentials", + "tags": [ + "mongo" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "mongoCreateFailover", + "tags": [ + "mongo" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "mongo\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "mongoUpdateMaintenance", + "tags": [ + "mongo" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "mongoCreateMigration", + "tags": [ + "mongo" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "mongo\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "mongoListOperations", + "tags": [ + "mongo" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "mongo\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/mongo\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "mongoGetPitr", + "tags": [ + "mongo" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "mongo\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "mongoGetReplicas", + "tags": [ + "mongo" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "mongo\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "mongoListRestorations", + "tags": [ + "mongo" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "mongoCreateRestoration", + "tags": [ + "mongo" + ], + "description": "Restore a database from a backup or to a specific point in time (PITR). For backup restoration, provide a backupId. For PITR, provide a targetTime as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "mongoGetRestoration", + "tags": [ + "mongo" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "mongoGetStatus", + "tags": [ + "mongo" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "mongoCreateUpgrade", + "tags": [ + "mongo" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/mysql": { + "get": { + "summary": "List databases", + "operationId": "mysqlList", + "tags": [ + "mysql" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "mysqlCreate", + "tags": [ + "mysql" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/mysql\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "mysqlListSpecifications", + "tags": [ + "mysql" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mysql\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "mysqlGet", + "tags": [ + "mysql" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "mysqlUpdate", + "tags": [ + "mysql" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "mysqlDelete", + "tags": [ + "mysql" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "mysqlListBackups", + "tags": [ + "mysql" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "mysqlCreateBackup", + "tags": [ + "mysql" + ], + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", + "responses": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "mysqlListBackupPolicies", + "tags": [ + "mysql" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "mysqlCreateBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "mysqlGetBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "mysqlUpdateBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "mysqlDeleteBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "mysqlUpdateBackupStorage", + "tags": [ + "mysql" + ], + "description": "Configure off-cluster backup storage for a dedicated database. Supports S3, GCS, and Azure Blob Storage destinations. Backups will be stored to the configured destination in addition to on-cluster storage.", + "responses": { + "200": { + "description": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "mysqlGetBackup", + "tags": [ + "mysql" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "mysqlDeleteBackup", + "tags": [ + "mysql" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "mysqlListBranches", + "tags": [ + "mysql" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "mysqlCreateBranch", + "tags": [ + "mysql" + ], + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "mysqlDeleteBranch", + "tags": [ + "mysql" + ], + "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "mysqlUpdateCredentials", + "tags": [ + "mysql" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/executions": { + "post": { + "summary": "Create execution", + "operationId": "mysqlCreateExecution", + "tags": [ + "mysql" + ], + "description": "Execute SQL through the console-facing Cloud endpoint. Cloud proxies through the edge platform to the per-database SQL API sidecar. Application traffic should bypass cloud entirely and POST directly to the per-database hostname: `https:\/\/db-{project}-{db}.{region}.appwrite.center\/v1\/sql\/executions` with an `X-Appwrite-Key` header \u2014 that path scales to the whole DB fleet without a per-query cloud round-trip. The statement type must be on the database's configured allow-list. Use bound parameters for any user-supplied values \u2014 the API does not interpolate raw strings.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "mysql\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "description": "SQL statement to execute. Exactly one statement per request.", + "type": "string", + "example": "<SQL>" + }, + "bindings": { + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "timeoutSeconds": { + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "mysqlCreateFailover", + "tags": [ + "mysql" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "mysql\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "mysqlUpdateMaintenance", + "tags": [ + "mysql" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "mysqlCreateMigration", + "tags": [ + "mysql" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "mysql\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "mysqlListOperations", + "tags": [ + "mysql" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "mysql\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/mysql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "mysqlGetPitr", + "tags": [ + "mysql" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "mysql\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/pooler": { + "get": { + "summary": "Get pooler", + "operationId": "mysqlGetPooler", + "tags": [ + "mysql" + ], + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "mysql\/get-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update pooler", + "operationId": "mysqlUpdatePooler", + "tags": [ + "mysql" + ], + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "mysql\/update-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "type": "string", + "example": "transaction", + "nullable": true + }, + "maxConnections": { + "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", + "type": "integer", + "example": 10, + "format": "int32", + "nullable": true + }, + "defaultPoolSize": { + "description": "Default pool size per user.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "readWriteSplitting": { + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "poolerCpuRequest": { + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "type": "string", + "example": "<POOLER_CPU_REQUEST>", + "nullable": true + }, + "poolerCpuLimit": { + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "type": "string", + "example": "<POOLER_CPU_LIMIT>", + "nullable": true + }, + "poolerMemoryRequest": { + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "type": "string", + "example": "<POOLER_MEMORY_REQUEST>", + "nullable": true + }, + "poolerMemoryLimit": { + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "type": "string", + "example": "<POOLER_MEMORY_LIMIT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "mysqlGetReplicas", + "tags": [ + "mysql" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "mysql\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "mysqlListRestorations", + "tags": [ + "mysql" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "mysqlCreateRestoration", + "tags": [ + "mysql" + ], + "description": "Restore a database from a backup or to a specific point in time (PITR). For backup restoration, provide a backupId. For PITR, provide a targetTime as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "mysqlGetRestoration", + "tags": [ + "mysql" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "mysqlGetStatus", + "tags": [ + "mysql" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "mysqlCreateUpgrade", + "tags": [ + "mysql" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/notifications": { + "get": { + "summary": "List notifications", + "operationId": "notificationsList", + "tags": [ + "notifications" + ], + "description": "Get the list of notifications for the currently logged in console user. Use queries to filter the results by attributes such as read status, view timestamps, or creation date.\n", + "responses": { + "200": { + "description": "Notifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/notificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "notifications\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: read, type, channel, messageId, projectId, resourceType, resourceId, parentResourceType, parentResourceId, firstSeen, lastSeen", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/notifications\/{notificationId}": { + "patch": { + "summary": "Update notification", + "operationId": "notificationsUpdate", + "tags": [ + "notifications" + ], + "description": "Update a notification by its unique ID. Use the `read` parameter to mark the notification as read or unread.\n", + "responses": { + "200": { + "description": "Notification", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/notification" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "notifications\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "notificationId", + "description": "Notification ID.", + "required": true, + "schema": { + "type": "string", + "example": "<NOTIFICATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "read": { + "description": "Notification read status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "read" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/approve": { + "post": { + "summary": "Approve OAuth2", + "operationId": "oauth2Approve", + "tags": [ + "oauth2" + ], + "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Approve", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Approve" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/approve.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + }, + "authorization_details": { + "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "scope": { + "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", + "type": "string", + "default": "", + "example": "<SCOPE>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/authorize": { + "get": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2Authorize", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "redirect_uri", + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "response_type", + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "scope", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "required": false, + "schema": { + "type": "string", + "example": "<SCOPE>", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "nonce", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "required": false, + "schema": { + "type": "string", + "example": "<NONCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "<CODE_CHALLENGE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge_method", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "s256", + "default": "" + }, + "in": "query" + }, + { + "name": "prompt", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "required": false, + "schema": { + "type": "string", + "example": "<PROMPT>", + "default": "" + }, + "in": "query" + }, + { + "name": "max_age", + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "in": "query" + }, + { + "name": "authorization_details", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "required": false, + "schema": { + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "default": "" + }, + "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "audience", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "required": false, + "schema": { + "type": "string", + "example": "<AUDIENCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "request_uri", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "required": false, + "schema": { + "type": "string", + "example": "<REQUEST_URI>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizePost", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "type": "string", + "default": "", + "example": "" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + }, + "request_uri": { + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "type": "string", + "default": "", + "example": "<REQUEST_URI>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/device_authorization": { + "post": { + "summary": "OAuth2 Device Authorization", + "operationId": "oauth2CreateDeviceAuthorization", + "tags": [ + "oauth2" + ], + "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", + "responses": { + "200": { + "description": "OAuth2 Device Authorization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-device-authorization.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants": { + "post": { + "summary": "Create OAuth2 Grant", + "operationId": "oauth2CreateGrant", + "tags": [ + "oauth2" + ], + "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", + "responses": { + "201": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/create-grant.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "user_code": { + "description": "User code displayed on the device.", + "type": "string", + "example": "<USER_CODE>" + } + }, + "required": [ + "user_code" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants\/{grant_id}": { + "get": { + "summary": "Get OAuth2 Grant", + "operationId": "oauth2GetGrant", + "tags": [ + "oauth2" + ], + "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", + "responses": { + "200": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/get-grant.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client that created grant during authorization exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "grant_id", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "required": true, + "schema": { + "type": "string", + "example": "<GRANT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/oauth2\/{project_id}\/logout": { + "get": { + "summary": "OAuth2 Logout", + "operationId": "oauth2Logout", + "tags": [ + "oauth2" + ], + "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "id_token_hint", + "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", + "required": false, + "schema": { + "type": "string", + "example": "<ID_TOKEN_HINT>", + "default": "" + }, + "in": "query" + }, + { + "name": "logout_hint", + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "required": false, + "schema": { + "type": "string", + "example": "<LOGOUT_HINT>", + "default": "" + }, + "in": "query" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "post_logout_redirect_uri", + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "ui_locales", + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "required": false, + "schema": { + "type": "string", + "example": "<UI_LOCALES>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Logout", + "operationId": "oauth2LogoutPost", + "tags": [ + "oauth2" + ], + "description": "OpenID Connect RP-Initiated Logout. Ends the user session and revokes the tokens issued to the app identified by the `id_token_hint`, then redirects the user to `post_logout_redirect_uri` when it matches a URI registered on the app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/logout.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "id_token_hint": { + "description": "ID Token previously issued to the app, used as proof of the logout request. Required to end the session; signature and issuer are validated while expiry is ignored.", + "type": "string", + "default": "", + "example": "<ID_TOKEN_HINT>" + }, + "logout_hint": { + "description": "Hint about the user that is logging out. Accepted for OIDC compatibility.", + "type": "string", + "default": "", + "example": "<LOGOUT_HINT>" + }, + "client_id": { + "description": "OAuth2 client ID. When both `client_id` and `id_token_hint` are provided, they must identify the same app.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "post_logout_redirect_uri": { + "description": "URI to redirect the user to after logout. Must exactly match a URI registered in the app's `postLogoutRedirectUris`.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "state": { + "description": "Opaque value passed back unchanged in the `state` query param of the post-logout redirect.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "ui_locales": { + "description": "Preferred languages for any logout UI, as space-separated BCP47 tags. Accepted for OIDC compatibility.", + "type": "string", + "default": "", + "example": "<UI_LOCALES>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/organizations": { + "get": { + "summary": "OAuth2 List Accessible Organizations", + "operationId": "oauth2ListOrganizations", + "tags": [ + "oauth2" + ], + "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible organizations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2OrganizationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-organizations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.organizations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of organizations to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of organizations to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/par": { + "post": { + "summary": "OAuth2 PAR", + "operationId": "oauth2CreatePAR", + "tags": [ + "oauth2" + ], + "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", + "responses": { + "201": { + "description": "OAuth2 PAR", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2PAR" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-par.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type.", + "type": "string", + "example": "code" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age parameter for customization of consent screen.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "client_id", + "redirect_uri", + "response_type" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/projects": { + "get": { + "summary": "OAuth2 List Accessible Projects", + "operationId": "oauth2ListProjects", + "tags": [ + "oauth2" + ], + "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible projects list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ProjectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-projects.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.projects.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of projects to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of projects to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/reject": { + "post": { + "summary": "Reject OAuth2", + "operationId": "oauth2Reject", + "tags": [ + "oauth2" + ], + "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Reject", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Reject" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/reject.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/revoke": { + "post": { + "summary": "OAuth2 Revoke", + "operationId": "oauth2Revoke", + "tags": [ + "oauth2" + ], + "description": "Revoke an OAuth2 access token or refresh token.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/revoke.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access or refresh token to revoke.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to revoke (access_token or refresh_token).", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/token": { + "post": { + "summary": "OAuth2 Token", + "operationId": "oauth2CreateToken", + "tags": [ + "oauth2" + ], + "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", + "responses": { + "200": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/create-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_type": { + "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", + "type": "string", + "example": "<GRANT_TYPE>" + }, + "code": { + "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "<CODE>" + }, + "refresh_token": { + "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", + "type": "string", + "default": "", + "example": "<REFRESH_TOKEN>" + }, + "device_code": { + "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", + "type": "string", + "default": "", + "example": "<DEVICE_CODE>" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + }, + "code_verifier": { + "description": "PKCE code verifier. Required for public apps.", + "type": "string", + "default": "", + "example": "<CODE_VERIFIER>" + }, + "redirect_uri": { + "description": "Redirect URI. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "grant_type" + ] + }, + "examples": { + "authorizationCode": { + "summary": "Exchange an authorization code", + "value": { + "grant_type": "authorization_code", + "code": "<CODE>", + "redirect_uri": "https:\/\/example.com\/callback", + "client_id": "<CLIENT_ID>", + "code_verifier": "<CODE_VERIFIER>" + } + }, + "refreshToken": { + "summary": "Refresh an access token", + "value": { + "grant_type": "refresh_token", + "refresh_token": "<REFRESH_TOKEN>", + "client_id": "<CLIENT_ID>" + } + }, + "deviceCode": { + "summary": "Exchange a device code", + "value": { + "grant_type": "urn:ietf:params:oauth:grant-type:device_code", + "device_code": "<DEVICE_CODE>", + "client_id": "<CLIENT_ID>" + } + } + } + } + } + } + } + }, + "\/organization": { + "get": { + "summary": "Get organization", + "operationId": "organizationGet", + "tags": [ + "organization" + ], + "description": "Get the current organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ] + }, + "put": { + "summary": "Update organization", + "operationId": "organizationUpdate", + "tags": [ + "organization" + ], + "description": "Update the current organization's name.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New organization name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization", + "operationId": "organizationDelete", + "tags": [ + "organization" + ], + "description": "Delete the current organization. All projects that belong to the organization are deleted as well.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ] + } + }, + "\/organization\/installations": { + "get": { + "summary": "List Installations", + "operationId": "organizationListInstallations", + "tags": [ + "organization" + ], + "description": "List app installations on the organization. Any organization member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "organizationCreateInstallation", + "tags": [ + "organization" + ], + "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/organization\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "organizationGetInstallation", + "tags": [ + "organization" + ], + "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "organizationUpdateInstallation", + "tags": [ + "organization" + ], + "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "organizationDeleteInstallation", + "tags": [ + "organization" + ], + "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/keys": { + "get": { + "summary": "List organization keys", + "operationId": "organizationListKeys", + "tags": [ + "organization" + ], + "description": "Get a list of all API keys from the current organization.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create organization key", + "operationId": "organizationCreateKey", + "tags": [ + "organization" + ], + "description": "Create a new organization API key.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyId": { + "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<KEY_ID>" + }, + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "OrganizationKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects.read" + ], + "title": "projects.read" + }, + { + "type": "string", + "enum": [ + "projects.write" + ], + "title": "projects.write" + }, + { + "type": "string", + "enum": [ + "organization.projects.keys.read" + ], + "title": "organization.projects.keys.read" + }, + { + "type": "string", + "enum": [ + "organization.projects.keys.write" + ], + "title": "organization.projects.keys.write" + }, + { + "type": "string", + "enum": [ + "organization.installations.read" + ], + "title": "organization.installations.read" + }, + { + "type": "string", + "enum": [ + "organization.installations.write" + ], + "title": "organization.installations.write" + }, + { + "type": "string", + "enum": [ + "organization.memberships.read" + ], + "title": "organization.memberships.read" + }, + { + "type": "string", + "enum": [ + "organization.memberships.write" + ], + "title": "organization.memberships.write" + }, + { + "type": "string", + "enum": [ + "organization.read" + ], + "title": "organization.read" + }, + { + "type": "string", + "enum": [ + "organization.write" + ], + "title": "organization.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/organization\/keys\/{keyId}": { + "get": { + "summary": "Get organization key", + "operationId": "organizationGetKey", + "tags": [ + "organization" + ], + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update organization key", + "operationId": "organizationUpdateKey", + "tags": [ + "organization" + ], + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "OrganizationKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "projects.read" + ], + "title": "projects.read" + }, + { + "type": "string", + "enum": [ + "projects.write" + ], + "title": "projects.write" + }, + { + "type": "string", + "enum": [ + "organization.projects.keys.read" + ], + "title": "organization.projects.keys.read" + }, + { + "type": "string", + "enum": [ + "organization.projects.keys.write" + ], + "title": "organization.projects.keys.write" + }, + { + "type": "string", + "enum": [ + "organization.installations.read" + ], + "title": "organization.installations.read" + }, + { + "type": "string", + "enum": [ + "organization.installations.write" + ], + "title": "organization.installations.write" + }, + { + "type": "string", + "enum": [ + "organization.memberships.read" + ], + "title": "organization.memberships.read" + }, + { + "type": "string", + "enum": [ + "organization.memberships.write" + ], + "title": "organization.memberships.write" + }, + { + "type": "string", + "enum": [ + "organization.read" + ], + "title": "organization.read" + }, + { + "type": "string", + "enum": [ + "organization.write" + ], + "title": "organization.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization key", + "operationId": "organizationDeleteKey", + "tags": [ + "organization" + ], + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/memberships": { + "get": { + "summary": "List organization memberships", + "operationId": "organizationListMemberships", + "tags": [ + "organization" + ], + "description": "Get a list of all memberships from the current organization.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create organization membership", + "operationId": "organizationCreateMembership", + "tags": [ + "organization" + ], + "description": "Invite a new member to join the current organization. An email with a link to join the organization will be sent to the new member's email address. If member doesn't exist in the project it will be automatically created.", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new organization member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to the organization.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "description": "Array of strings. Use this param to set the user roles in the organization. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "items": { + "type": "string" + } + }, + "url": { + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new organization member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/organization\/memberships\/{membershipId}": { + "get": { + "summary": "Get organization membership", + "operationId": "organizationGetMembership", + "tags": [ + "organization" + ], + "description": "Get a membership from the current organization by its unique ID.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization membership", + "operationId": "organizationUpdateMembership", + "tags": [ + "organization" + ], + "description": "Modify the roles of a member in the current organization.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "description": "An array of strings. Use this param to set the user's roles in the organization. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "roles" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization membership", + "operationId": "organizationDeleteMembership", + "tags": [ + "organization" + ], + "description": "Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/projects": { + "get": { + "summary": "List organization projects", + "operationId": "organizationListProjects", + "tags": [ + "organization" + ], + "description": "Get a list of all projects. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Projects List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/projectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/list-projects.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create organization project", + "operationId": "organizationCreateProject", + "tags": [ + "organization" + ], + "description": "Create a new project.", + "responses": { + "201": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/create-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROJECT_ID>" + }, + "name": { + "description": "Project name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "region": { + "description": "Project Region.", + "type": "string", + "example": "fra", + "title": "Region", + "oneOf": [ + { + "type": "string", + "enum": [ + "fra" + ], + "title": "fra" + }, + { + "type": "string", + "enum": [ + "nyc" + ], + "title": "nyc" + }, + { + "type": "string", + "enum": [ + "syd" + ], + "title": "syd" + }, + { + "type": "string", + "enum": [ + "sfo" + ], + "title": "sfo" + }, + { + "type": "string", + "enum": [ + "sgp" + ], + "title": "sgp" + }, + { + "type": "string", + "enum": [ + "tor" + ], + "title": "tor" + } + ] + } + }, + "required": [ + "projectId", + "name" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}": { + "get": { + "summary": "Get organization project", + "operationId": "organizationGetProject", + "tags": [ + "organization" + ], + "description": "Get a project.", + "responses": { + "200": { + "description": "Project", + "content": { + "": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/get-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization project", + "operationId": "organizationUpdateProject", + "tags": [ + "organization" + ], + "description": "Update a project by its unique ID.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/update-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Project name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization project", + "operationId": "organizationDeleteProject", + "tags": [ + "organization" + ], + "description": "Delete a project by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/delete-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/projects\/{projectId}\/keys": { + "get": { + "summary": "List project keys", + "operationId": "organizationListProjectKeys", + "tags": [ + "organization" + ], + "description": "Get a list of all API keys of a project in your organization.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/list-project-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project key", + "operationId": "organizationCreateProjectKey", + "tags": [ + "organization" + ], + "description": "Create a new API key for a project in your organization. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create an ephemeral API key if you need a short-lived key instead.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/create-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyId": { + "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<KEY_ID>" + }, + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "organizationCreateEphemeralProjectKey", + "tags": [ + "organization" + ], + "description": "Create a new ephemeral API key for a project in your organization. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", + "responses": { + "201": { + "description": "Ephemeral Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/ephemeralKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/create-ephemeral-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "duration": { + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "type": "integer", + "example": 600, + "format": "int32" + } + }, + "required": [ + "scopes", + "duration" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "organizationGetProjectKey", + "tags": [ + "organization" + ], + "description": "Get a project key by its unique ID.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/get-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project key", + "operationId": "organizationUpdateProjectKey", + "tags": [ + "organization" + ], + "description": "Update a project key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/update-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "organizationDeleteProjectKey", + "tags": [ + "organization" + ], + "description": "Delete a project key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/delete-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations": { + "get": { + "summary": "List Orgnizations", + "operationId": "organizationsList", + "tags": [ + "organizations" + ], + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "responses": { + "200": { + "description": "Organizations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organizationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan, paymentMethodId, backupPaymentMethodId, platform", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Organization", + "operationId": "organizationsCreate", + "tags": [ + "organizations" + ], + "description": "Create a new organization.\n", + "responses": { + "201": { + "description": "Organization, or PaymentAuthentication", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/organization" + }, + { + "$ref": "#\/components\/schemas\/paymentAuthentication" + } + ] + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "organizationId": { + "description": "Organization ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "name": { + "description": "Organization name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "billingPlan": { + "description": "Organization billing plan chosen", + "type": "string", + "example": "tier-0" + }, + "paymentMethodId": { + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>", + "nullable": true + }, + "billingAddressId": { + "description": "Unique ID of billing address", + "type": "string", + "default": "", + "example": "<BILLING_ADDRESS_ID>", + "nullable": true + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + }, + "taxId": { + "description": "Tax Id associated to billing.", + "type": "string", + "example": "<TAX_ID>", + "nullable": true + }, + "budget": { + "description": "Budget limit for additional usage set for the organization", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "platform": { + "description": "Platform type", + "type": "string", + "default": "appwrite", + "example": "appwrite", + "title": "Platform", + "oneOf": [ + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "imagine" + ], + "title": "imagine" + } + ] + } + }, + "required": [ + "organizationId", + "name", + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/estimations\/create-organization": { + "patch": { + "summary": "Estimate create Organization", + "operationId": "organizationsEstimationCreateOrganization", + "tags": [ + "organizations" + ], + "description": "Get estimation for creating an organization.", + "responses": { + "200": { + "description": "Estimation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/estimation-create-organization.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "description": "Organization billing plan chosen", + "type": "string", + "example": "tier-0" + }, + "paymentMethodId": { + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>", + "nullable": true + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + }, + "platform": { + "description": "Platform type", + "type": "string", + "default": "appwrite", + "example": "appwrite", + "title": "Platform", + "oneOf": [ + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "imagine" + ], + "title": "imagine" + } + ] + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}": { + "delete": { + "summary": "Delete team", + "operationId": "organizationsDelete", + "tags": [ + "organizations" + ], + "description": "Delete an organization.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organizations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons": { + "get": { + "summary": "List addons", + "operationId": "organizationsListAddons", + "tags": [ + "organizations" + ], + "description": "List all billing addons for an organization.\n", + "responses": { + "200": { + "description": "Addons list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-addons.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/baa": { + "post": { + "summary": "Create BAA addon", + "operationId": "organizationsCreateBaaAddon", + "tags": [ + "organizations" + ], + "description": "Create the BAA billing addon for an organization.\n", + "responses": { + "201": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-baa-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/premium-geo-db": { + "post": { + "summary": "Create Premium Geo DB addon", + "operationId": "organizationsCreatePremiumGeoDBAddon", + "tags": [ + "organizations" + ], + "description": "Create a Premium Geo DB addon for an organization.\n", + "responses": { + "201": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-premium-geo-db-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/{addonId}": { + "get": { + "summary": "Get addon", + "operationId": "organizationsGetAddon", + "tags": [ + "organizations" + ], + "description": "Get the details of a billing addon for an organization.\n", + "responses": { + "200": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-addon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete addon", + "operationId": "organizationsDeleteAddon", + "tags": [ + "organizations" + ], + "description": "Delete a billing addon for an organization.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/delete-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/{addonId}\/confirmations": { + "post": { + "summary": "Confirm addon payment after 3DS authentication", + "operationId": "organizationsConfirmAddonPayment", + "tags": [ + "organizations" + ], + "description": "Confirm payment for a billing addon for an organization.\n", + "responses": { + "200": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/confirm-addon-payment.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/{addon}\/price": { + "get": { + "summary": "Get addon price", + "operationId": "organizationsGetAddonPrice", + "tags": [ + "organizations" + ], + "description": "Get the price details for a billing addon for an organization.\n", + "responses": { + "200": { + "description": "AddonPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonPrice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-addon-price.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addon", + "description": "Addon key identifier (e.g. baa).", + "required": true, + "schema": { + "type": "string", + "example": "baa", + "title": "AddonKey", + "oneOf": [ + { + "type": "string", + "enum": [ + "baa" + ], + "title": "baa" + }, + { + "type": "string", + "enum": [ + "premiumgeodb" + ], + "title": "premiumgeodb" + }, + { + "type": "string", + "enum": [ + "premiumgeodborg" + ], + "title": "premiumgeodborg" + }, + { + "type": "string", + "enum": [ + "backup_recovery" + ], + "title": "backup_recovery" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/aggregations": { + "get": { + "summary": "List aggregations", + "operationId": "organizationsListAggregations", + "tags": [ + "organizations" + ], + "description": "Get a list of all aggregations for an organization.", + "responses": { + "200": { + "description": "Aggregation team list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/aggregationTeamList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-aggregations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, from, to", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { + "get": { + "summary": "Get aggregation", + "operationId": "organizationsGetAggregation", + "tags": [ + "organizations" + ], + "description": "Get a specific aggregation using it's aggregation ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/aggregationTeam" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-aggregation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "aggregationId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<AGGREGATION_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of project aggregations to return in response. By default will return maximum 5 results. Maximum of 10 results allowed per request.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 5 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset value. The default value is 0. Use this param to manage pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/organizations\/{organizationId}\/billing-address": { + "patch": { + "summary": "Set team's billing address", + "operationId": "organizationsSetBillingAddress", + "tags": [ + "organizations" + ], + "description": "Set a billing address for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingAddressId": { + "description": "Unique ID of billing address", + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + } + }, + "required": [ + "billingAddressId" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team's billing address", + "operationId": "organizationsDeleteBillingAddress", + "tags": [ + "organizations" + ], + "description": "Delete a team's billing address.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/delete-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { + "get": { + "summary": "Get billing address", + "operationId": "organizationsGetBillingAddress", + "tags": [ + "organizations" + ], + "description": "Get a billing address using it's ID.", + "responses": { + "200": { + "description": "Address", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingAddress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-billing-address.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "schema": { + "type": "string", + "example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/billing-email": { + "patch": { + "summary": "Set team's billing email", + "operationId": "organizationsSetBillingEmail", + "tags": [ + "organizations" + ], + "description": "Set the current billing email for the organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-billing-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingEmail": { + "description": "Billing email for the organization.", + "type": "string", + "example": "email@example.com", + "format": "email" + } + }, + "required": [ + "billingEmail" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/budget": { + "patch": { + "summary": "Update organization budget", + "operationId": "organizationsUpdateBudget", + "tags": [ + "organizations" + ], + "description": "Update the budget limit for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/update-budget.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "budget": { + "description": "Budget limit for additional usage set for the organization", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "alerts": { + "description": "Budget alert limit percentage", + "type": "array", + "default": [ + 75 + ], + "items": { + "type": "integer" + } + } + }, + "required": [ + "budget" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/credits": { + "get": { + "summary": "List credits", + "operationId": "organizationsListCredits", + "tags": [ + "organizations" + ], + "description": "List all credits for an organization.\n", + "responses": { + "200": { + "description": "CreditList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/creditList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-credits.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, couponId, credits, expiration, status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Add credits from coupon", + "operationId": "organizationsAddCredit", + "tags": [ + "organizations" + ], + "description": "Add credit to an organization using a coupon.", + "responses": { + "201": { + "description": "Credit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/credit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/add-credit.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "couponId": { + "description": "ID of the coupon", + "type": "string", + "example": "<COUPON_ID>" + } + }, + "required": [ + "couponId" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/credits\/available": { + "get": { + "summary": "Get available credits", + "operationId": "organizationsGetAvailableCredits", + "tags": [ + "organizations" + ], + "description": "Get total available valid credits for an organization.", + "responses": { + "200": { + "description": "CreditAvailable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/creditAvailable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-available-credits.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/credits\/{creditId}": { + "get": { + "summary": "Get credit details", + "operationId": "organizationsGetCredit", + "tags": [ + "organizations" + ], + "description": "Get credit details.", + "responses": { + "200": { + "description": "Credit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/credit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-credit.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "creditId", + "description": "Credit Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<CREDIT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/estimations\/delete-organization": { + "patch": { + "summary": "Estimate delete team", + "operationId": "organizationsEstimationDeleteOrganization", + "tags": [ + "organizations" + ], + "description": "Get estimation for deleting an organization.", + "responses": { + "200": { + "description": "DeleteOrganization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimationDeleteOrganization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/estimation-delete-organization.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organizations.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/estimations\/update-plan": { + "patch": { + "summary": "Estimate for update plan", + "operationId": "organizationsEstimationUpdatePlan", + "tags": [ + "organizations" + ], + "description": "Get estimation for updating the organization plan.", + "responses": { + "200": { + "description": "UpdatePlan", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimationUpdatePlan" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/estimation-update-plan.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "description": "Organization billing plan chosen", + "type": "string", + "example": "tier-0" + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + "post": { + "summary": "Create downgrade feedback", + "operationId": "organizationsCreateDowngradeFeedback", + "tags": [ + "organizations" + ], + "description": "Submit feedback about downgrading from a paid plan to a lower tier. This helps the team understand user experience and improve the platform.\n", + "responses": { + "201": { + "description": "Downgrade Feedback", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/downgradeFeedback" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-downgrade-feedback.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "reason": { + "description": "Feedback reason", + "type": "string", + "example": "<REASON>" + }, + "message": { + "description": "Feedback message", + "type": "string", + "example": "<MESSAGE>" + }, + "fromPlanId": { + "description": "Plan downgrading from", + "type": "string", + "example": "<FROM_PLAN_ID>" + }, + "toPlanId": { + "description": "Plan downgrading to", + "type": "string", + "example": "<TO_PLAN_ID>" + } + }, + "required": [ + "reason", + "message", + "fromPlanId", + "toPlanId" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "organizationsListInvoices", + "tags": [ + "organizations" + ], + "description": "List all invoices for an organization.", + "responses": { + "200": { + "description": "Billing invoices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoiceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-invoices.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { + "get": { + "summary": "Get invoice", + "operationId": "organizationsGetInvoice", + "tags": [ + "organizations" + ], + "description": "Get an invoice by its unique ID.", + "responses": { + "200": { + "description": "Invoice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-invoice.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { + "get": { + "summary": "Download invoice in PDF", + "operationId": "organizationsGetInvoiceDownload", + "tags": [ + "organizations" + ], + "description": "Download invoice in PDF", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-invoice-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [] + }, + { + "Project": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { + "post": { + "summary": "Initiate payment for failed invoice to pay live from console", + "operationId": "organizationsCreateInvoicePayment", + "tags": [ + "organizations" + ], + "description": "Initiate payment for failed invoice to pay live from console", + "responses": { + "200": { + "description": "Invoice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-invoice-payment.md", + "rate-limit": 10, + "rate-time": 86400, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "paymentMethodId": { + "description": "Payment method ID", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "paymentMethodId" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { + "patch": { + "summary": "Validate the payment for an invoice and update status", + "operationId": "organizationsValidateInvoice", + "tags": [ + "organizations" + ], + "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", + "responses": { + "200": { + "description": "Invoice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/invoice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/validate-invoice.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { + "get": { + "summary": "View invoice in PDF", + "operationId": "organizationsGetInvoiceView", + "tags": [ + "organizations" + ], + "description": "View invoice in PDF", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-invoice-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [] + }, + { + "Project": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<INVOICE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/payment-method": { + "patch": { + "summary": "Set team's payment method", + "operationId": "organizationsSetDefaultPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Set a organization's default payment method.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-default-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "paymentMethodId": { + "description": "Unique ID of payment method", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "paymentMethodId" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team's default payment method", + "operationId": "organizationsDeleteDefaultPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Delete the default payment method for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/delete-default-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/payment-method\/backup": { + "patch": { + "summary": "Set team's backup payment method", + "operationId": "organizationsSetBackupPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Set an organization's backup payment method.\n", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-backup-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "paymentMethodId": { + "description": "Unique ID of payment method", + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + } + }, + "required": [ + "paymentMethodId" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team's backup payment method", + "operationId": "organizationsDeleteBackupPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Delete a backup payment method for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/delete-backup-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { + "get": { + "summary": "Get payment method", + "operationId": "organizationsGetPaymentMethod", + "tags": [ + "organizations" + ], + "description": "Get an organization's payment method using it's payment method ID.", + "responses": { + "200": { + "description": "paymentMethod", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/paymentMethod" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "paymentMethodId", + "description": "Unique ID of payment method", + "required": true, + "schema": { + "type": "string", + "example": "<PAYMENT_METHOD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/plan": { + "get": { + "summary": "Get organization billing plan details", + "operationId": "organizationsGetPlan", + "tags": [ + "organizations" + ], + "description": "Get the details of the current billing plan for an organization.", + "responses": { + "200": { + "description": "billingPlan", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlan" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-plan.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization billing plan", + "operationId": "organizationsUpdatePlan", + "tags": [ + "organizations" + ], + "description": "Update the billing plan for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/update-plan.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "description": "Organization billing plan chosen", + "type": "string", + "example": "tier-0" + }, + "paymentMethodId": { + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "type": "string", + "example": "<PAYMENT_METHOD_ID>", + "nullable": true + }, + "billingAddressId": { + "description": "Unique ID of billing address", + "type": "string", + "default": "", + "example": "<BILLING_ADDRESS_ID>" + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + }, + "taxId": { + "description": "Tax Id associated to billing.", + "type": "string", + "example": "<TAX_ID>", + "nullable": true + }, + "budget": { + "description": "Budget limit for additional usage set for the organization", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/plan\/estimations": { + "post": { + "summary": "Create billing plan estimation (upgrade or downgrade)", + "operationId": "organizationsCreatePlanEstimation", + "tags": [ + "organizations" + ], + "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", + "responses": { + "200": { + "description": "EstimationPlanChange", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/estimationPlanChange" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/create-plan-estimation.md", + "rate-limit": 120, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "description": "Target billing plan", + "type": "string", + "example": "tier-0" + }, + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "couponId": { + "description": "Coupon id", + "type": "string", + "example": "<COUPON_ID>", + "nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/regions": { + "get": { + "summary": "List Regions", + "operationId": "organizationsListRegions", + "tags": [ + "organizations" + ], + "description": "Get all available regions for an organization.", + "responses": { + "200": { + "description": "Regions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleRegionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/list-regions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/roles": { + "get": { + "summary": "Get Scopes", + "operationId": "organizationsGetScopes", + "tags": [ + "organizations" + ], + "description": "Get Scopes", + "responses": { + "200": { + "description": "Roles", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/roles" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization id", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "projectId", + "description": "Project id", + "required": false, + "schema": { + "type": "string", + "example": "<PROJECT_ID>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/organizations\/{organizationId}\/taxId": { + "patch": { + "summary": "Set team's tax Id", + "operationId": "organizationsSetBillingTaxId", + "tags": [ + "organizations" + ], + "description": "Set an organization's billing tax ID.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/set-billing-tax-id.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "taxId": { + "description": "Tax Id associated to billing.", + "type": "string", + "example": "<TAX_ID>", + "nullable": true + } + }, + "required": [ + "taxId" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/usage": { + "get": { + "summary": "Get team's usage data", + "operationId": "organizationsGetUsage", + "tags": [ + "organizations" + ], + "description": "Get the usage data for an organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageOrganization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "startDate", + "description": "Starting date for the usage", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "in": "query" + }, + { + "name": "endDate", + "description": "End date for the usage", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "in": "query" + } + ] + } + }, + "\/organizations\/{organizationId}\/validate": { + "patch": { + "summary": "Validate payment for the organization after creation or upgrade", + "operationId": "organizationsValidatePayment", + "tags": [ + "organizations" + ], + "description": "Validate payment for team after creation or upgrade.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organizations\/validate-payment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "invites": { + "description": "Additional member invites", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/ping": { + "get": { + "summary": "Test the connection between the Appwrite and the SDK.", + "operationId": "pingGet", + "tags": [ + "ping" + ], + "description": "Send a ping to project as part of onboarding.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "ping\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [], + "Session": [] + } + ] + } + }, + "\/postgresql": { + "get": { + "summary": "List databases", + "operationId": "postgresqlList", + "tags": [ + "postgresql" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "postgresqlCreate", + "tags": [ + "postgresql" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/postgresql\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "postgresqlListSpecifications", + "tags": [ + "postgresql" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/postgresql\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "postgresqlGet", + "tags": [ + "postgresql" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "postgresqlUpdate", + "tags": [ + "postgresql" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "postgresqlDelete", + "tags": [ + "postgresql" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "postgresqlListBackups", + "tags": [ + "postgresql" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "postgresqlCreateBackup", + "tags": [ + "postgresql" + ], + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", + "responses": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "postgresqlListBackupPolicies", + "tags": [ + "postgresql" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "postgresqlCreateBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "postgresqlGetBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "postgresqlUpdateBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "postgresqlDeleteBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "postgresqlUpdateBackupStorage", + "tags": [ + "postgresql" + ], + "description": "Configure off-cluster backup storage for a dedicated database. Supports S3, GCS, and Azure Blob Storage destinations. Backups will be stored to the configured destination in addition to on-cluster storage.", + "responses": { + "200": { + "description": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "postgresqlGetBackup", + "tags": [ + "postgresql" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "postgresqlDeleteBackup", + "tags": [ + "postgresql" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "postgresqlListBranches", + "tags": [ + "postgresql" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "postgresqlCreateBranch", + "tags": [ + "postgresql" + ], + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "postgresqlDeleteBranch", + "tags": [ + "postgresql" + ], + "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "postgresqlUpdateCredentials", + "tags": [ + "postgresql" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/executions": { + "post": { + "summary": "Create execution", + "operationId": "postgresqlCreateExecution", + "tags": [ + "postgresql" + ], + "description": "Execute SQL through the console-facing Cloud endpoint. Cloud proxies through the edge platform to the per-database SQL API sidecar. Application traffic should bypass cloud entirely and POST directly to the per-database hostname: `https:\/\/db-{project}-{db}.{region}.appwrite.center\/v1\/sql\/executions` with an `X-Appwrite-Key` header \u2014 that path scales to the whole DB fleet without a per-query cloud round-trip. The statement type must be on the database's configured allow-list. Use bound parameters for any user-supplied values \u2014 the API does not interpolate raw strings.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "postgresql\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "description": "SQL statement to execute. Exactly one statement per request.", + "type": "string", + "example": "<SQL>" + }, + "bindings": { + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "timeoutSeconds": { + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/extensions": { + "get": { + "summary": "List extensions", + "operationId": "postgresqlListExtensions", + "tags": [ + "postgresql" + ], + "description": "List installed and available extensions for a PostgreSQL database.", + "responses": { + "200": { + "description": "Extensions", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/list-extensions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create extension", + "operationId": "postgresqlCreateExtension", + "tags": [ + "postgresql" + ], + "description": "Install a database extension. Only available for PostgreSQL databases. The install runs asynchronously; poll the extensions list endpoint for status.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/create-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { + "delete": { + "summary": "Delete extension", + "operationId": "postgresqlDeleteExtension", + "tags": [ + "postgresql" + ], + "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/delete-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "extensionName", + "description": "Extension name to uninstall.", + "required": true, + "schema": { + "type": "string", + "example": "<EXTENSION_NAME>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "postgresqlCreateFailover", + "tags": [ + "postgresql" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "postgresql\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "postgresqlUpdateMaintenance", + "tags": [ + "postgresql" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "postgresqlCreateMigration", + "tags": [ + "postgresql" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "postgresql\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "postgresqlListOperations", + "tags": [ + "postgresql" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "postgresql\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/postgresql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "postgresqlGetPitr", + "tags": [ + "postgresql" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "postgresql\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/pooler": { + "get": { + "summary": "Get pooler", + "operationId": "postgresqlGetPooler", + "tags": [ + "postgresql" + ], + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "postgresql\/get-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update pooler", + "operationId": "postgresqlUpdatePooler", + "tags": [ + "postgresql" + ], + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "postgresql\/update-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "type": "string", + "example": "transaction", + "nullable": true + }, + "maxConnections": { + "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", + "type": "integer", + "example": 10, + "format": "int32", + "nullable": true + }, + "defaultPoolSize": { + "description": "Default pool size per user.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "readWriteSplitting": { + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "poolerCpuRequest": { + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "type": "string", + "example": "<POOLER_CPU_REQUEST>", + "nullable": true + }, + "poolerCpuLimit": { + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "type": "string", + "example": "<POOLER_CPU_LIMIT>", + "nullable": true + }, + "poolerMemoryRequest": { + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "type": "string", + "example": "<POOLER_MEMORY_REQUEST>", + "nullable": true + }, + "poolerMemoryLimit": { + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "type": "string", + "example": "<POOLER_MEMORY_LIMIT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "postgresqlGetReplicas", + "tags": [ + "postgresql" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "postgresql\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "postgresqlListRestorations", + "tags": [ + "postgresql" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "postgresqlCreateRestoration", + "tags": [ + "postgresql" + ], + "description": "Restore a database from a backup or to a specific point in time (PITR). For backup restoration, provide a backupId. For PITR, provide a targetTime as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "postgresqlGetRestoration", + "tags": [ + "postgresql" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "postgresqlGetStatus", + "tags": [ + "postgresql" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "postgresqlCreateUpgrade", + "tags": [ + "postgresql" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/presences": { + "get": { + "summary": "List presences", + "operationId": "presencesList", + "tags": [ + "presences" + ], + "description": "List presence logs. Expired entries are filtered out automatically.\n", + "responses": { + "200": { + "description": "Presences List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presenceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/presences\/usage": { + "get": { + "summary": "Get presence usage", + "operationId": "presencesGetUsage", + "tags": [ + "presences" + ], + "description": "Get presence usage metrics, including the current total of online users and historical online user counts for the selected time range.\n", + "responses": { + "200": { + "description": "UsagePresence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usagePresence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "presences\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "example": "24h", + "title": "UsageRange", + "oneOf": [ + { + "type": "string", + "enum": [ + "24h" + ], + "title": "Twenty Four Hours" + }, + { + "type": "string", + "enum": [ + "30d" + ], + "title": "Thirty Days" + }, + { + "type": "string", + "enum": [ + "90d" + ], + "title": "Ninety Days" + } + ], + "default": "30d" + }, + "in": "query" + } + ] + } + }, + "\/presences\/{presenceId}": { + "get": { + "summary": "Get presence", + "operationId": "presencesGet", + "tags": [ + "presences" + ], + "description": "Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", + "tags": [ + "presences" + ], + "description": "Create or update a presence log by its user ID.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/upsert.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "platforms": [ + "client", + "console" + ], + "summary": "Upsert presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "status", + "permissions", + "expiresAt", + "metadata" + ], + "required": [ + "presenceId", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/presence" + } + ], + "description": "Create or update a presence log by its user ID.\n", + "demo": "presences\/upsert.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "status" + ] + } + } + } + } + }, + "patch": { + "summary": "Update presence", + "operationId": "presencesUpdate", + "tags": [ + "presences" + ], + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "update", + "namespace": "presences", + "platforms": [ + "client", + "console" + ], + "summary": "Update presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "status", + "expiresAt", + "metadata", + "permissions", + "purge" + ], + "required": [ + "presenceId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/presence" + } + ], + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "demo": "presences\/update.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "purge": { + "description": "When true, purge cached responses used by list presences endpoint.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", + "tags": [ + "presences" + ], + "description": "Delete a presence log by its unique ID.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project": { + "get": { + "summary": "Get project", + "operationId": "projectGet", + "tags": [ + "project" + ], + "description": "Get a project.", + "responses": { + "200": { + "description": "Project", + "content": { + "": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + }, + "delete": { + "summary": "Delete project", + "operationId": "projectDelete", + "tags": [ + "project" + ], + "description": "Delete a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/project\/auth-methods\/{methodId}": { + "patch": { + "summary": "Update project auth method status", + "operationId": "projectUpdateAuthMethod", + "tags": [ + "project" + ], + "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-auth-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "methodId", + "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone,passkey", + "required": true, + "schema": { + "type": "string", + "example": "email-password", + "title": "ProjectAuthMethodId", + "oneOf": [ + { + "type": "string", + "enum": [ + "email-password" + ], + "title": "email-password" + }, + { + "type": "string", + "enum": [ + "magic-url" + ], + "title": "magic-url" + }, + { + "type": "string", + "enum": [ + "email-otp" + ], + "title": "email-otp" + }, + { + "type": "string", + "enum": [ + "anonymous" + ], + "title": "anonymous" + }, + { + "type": "string", + "enum": [ + "invites" + ], + "title": "invites" + }, + { + "type": "string", + "enum": [ + "jwt" + ], + "title": "jwt" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "passkey" + ], + "title": "passkey" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Auth method status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/keys": { + "get": { + "summary": "List project keys", + "operationId": "projectListKeys", + "tags": [ + "project" + ], + "description": "Get a list of all API keys from the current project.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project key", + "operationId": "projectCreateKey", + "tags": [ + "project" + ], + "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create an ephemeral API key if you need a short-lived key instead.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyId": { + "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<KEY_ID>" + }, + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/project\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "projectCreateEphemeralKey", + "tags": [ + "project" + ], + "description": "Create a new ephemeral API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", + "responses": { + "201": { + "description": "Ephemeral Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/ephemeralKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/create-ephemeral-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "duration": { + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "type": "integer", + "example": 600, + "format": "int32" + } + }, + "required": [ + "scopes", + "duration" + ] + } + } + } + } + } + }, + "\/project\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "projectGetKey", + "tags": [ + "project" + ], + "description": "Get a key by its unique ID. ", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project key", + "operationId": "projectUpdateKey", + "tags": [ + "project" + ], + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "projectDeleteKey", + "tags": [ + "project" + ], + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project\/labels": { + "put": { + "summary": "Update project labels", + "operationId": "projectUpdateLabels", + "tags": [ + "project" + ], + "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-labels.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "example": [ + "production" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/project\/mock-phones": { + "get": { + "summary": "List project mock phones", + "operationId": "projectListMockPhones", + "tags": [ + "project" + ], + "description": "Get a list of all mock phones in the project. This endpoint returns an array of all mock phones and their OTPs.", + "responses": { + "200": { + "description": "Mock Numbers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumberList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/list-mock-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project mock phone", + "operationId": "projectCreateMockPhone", + "tags": [ + "project" + ], + "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", + "responses": { + "201": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/create-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "otp": { + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "number", + "otp" + ] + } + } + } + } + } + }, + "\/project\/mock-phones\/{number}": { + "get": { + "summary": "Get project mock phone", + "operationId": "projectGetMockPhone", + "tags": [ + "project" + ], + "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", + "responses": { + "200": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/get-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "example": "+12065550100" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project mock phone", + "operationId": "projectUpdateMockPhone", + "tags": [ + "project" + ], + "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", + "responses": { + "200": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/update-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "example": "+12065550100" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project mock phone", + "operationId": "projectDeleteMockPhone", + "tags": [ + "project" + ], + "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/delete-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "example": "+12065550100" + }, + "in": "path" + } + ] + } + }, + "\/project\/oauth2": { + "get": { + "summary": "List project OAuth2 providers", + "operationId": "projectListOAuth2Providers", + "tags": [ + "project" + ], + "description": "Get a list of all OAuth2 providers supported by the server, along with the project's configuration for each. Credential fields are write-only and always returned empty.", + "responses": { + "200": { + "description": "OAuth2 Providers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2ProviderList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/oauth2-server": { + "put": { + "summary": "Update OAuth2 server", + "operationId": "projectUpdateOAuth2Server", + "tags": [ + "project" + ], + "description": "Update the OAuth2 server (OIDC provider) configuration.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-o-auth-2-server.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Enable or disable the OAuth2 server.", + "type": "boolean", + "example": false + }, + "authorizationUrl": { + "description": "URL to your application with consent screen.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "scopes": { + "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "authorizationDetailsTypes": { + "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "accessTokenDuration": { + "description": "Access token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 8 hours.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "refreshTokenDuration": { + "description": "Refresh token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 1 year.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "publicAccessTokenDuration": { + "description": "Access token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 1 hour.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "publicRefreshTokenDuration": { + "description": "Refresh token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 30 days.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "installationAccessTokenDuration": { + "description": "Access token duration in seconds for app installation access tokens. Leave empty to use default 1 hour.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "confidentialPkce": { + "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", + "type": "boolean", + "example": false, + "nullable": true + }, + "verificationUrl": { + "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "userCodeLength": { + "description": "Number of characters in the device flow user code, excluding the formatting separator. Shorter codes are easier to type but weaker; pair short codes with short expiry. Leave empty to use default 8.", + "type": "integer", + "example": 6, + "format": "int32", + "nullable": true + }, + "userCodeFormat": { + "description": "Character set for device flow user codes: `numeric` (digits only \u2014 best for numeric keypads and TV remotes), `alphabetic` (letters only), or `alphanumeric` (letters and digits \u2014 highest entropy per character). Defaults to `alphanumeric`.", + "type": "string", + "default": "alphanumeric", + "example": "numeric" + }, + "deviceCodeDuration": { + "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "defaultScopes": { + "description": "List of OAuth2 scopes used when an authorization request omits the scope parameter. Every default scope must also be allowed by the OAuth2 server. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationScopes": { + "description": "List of scopes an application may request when installed on a team. Omitting the parameter clears the list, so no installation scopes can be granted. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "authorizationUrl" + ] + } + } + } + } + } + }, + "\/project\/oauth2\/amazon": { + "patch": { + "summary": "Update project OAuth2 Amazon", + "operationId": "projectUpdateOAuth2Amazon", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Amazon configuration.", + "responses": { + "200": { + "description": "OAuth2Amazon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-amazon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/apple": { + "patch": { + "summary": "Update project OAuth2 Apple", + "operationId": "projectUpdateOAuth2Apple", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Apple configuration.", + "responses": { + "200": { + "description": "OAuth2Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Apple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-apple.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "serviceId": { + "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", + "type": "string", + "example": "<SERVICE_ID>", + "nullable": true + }, + "keyId": { + "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", + "type": "string", + "example": "<KEY_ID>", + "nullable": true + }, + "teamId": { + "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", + "type": "string", + "example": "<TEAM_ID>", + "nullable": true + }, + "p8File": { + "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "type": "string", + "example": "<P8_FILE>", + "nullable": true + }, + "nativeClientIds": { + "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple. For example: com.example.app. Together with the Services ID, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "enabled": { + "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", + "type": "boolean", + "example": false, + "nullable": true + }, + "nativeEnabled": { + "description": "Native Sign in with Apple status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a Services ID or at least one native client ID to match tokens against, but no key or team ID: this method verifies a signature rather than redeeming an authorization code.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/appwrite": { + "patch": { + "summary": "Update project OAuth2 Appwrite", + "operationId": "projectUpdateOAuth2Appwrite", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Appwrite configuration.", + "responses": { + "200": { + "description": "OAuth2Appwrite", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Appwrite" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-appwrite.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/auth0": { + "patch": { + "summary": "Update project OAuth2 Auth0", + "operationId": "projectUpdateOAuth2Auth0", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Auth0 configuration.", + "responses": { + "200": { + "description": "OAuth2Auth0", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-auth-0.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Auth0 instance. For example: example.us.auth0.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "prompt": { + "description": "Array of Auth0 OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Auth0 default.", + "type": "array", + "items": { + "title": "ProjectOAuth2Auth0Prompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/authentik": { + "patch": { + "summary": "Update project OAuth2 Authentik", + "operationId": "projectUpdateOAuth2Authentik", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Authentik configuration.", + "responses": { + "200": { + "description": "OAuth2Authentik", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-authentik.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Authentik instance. For example: example.authentik.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/autodesk": { + "patch": { + "summary": "Update project OAuth2 Autodesk", + "operationId": "projectUpdateOAuth2Autodesk", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Autodesk configuration.", + "responses": { + "200": { + "description": "OAuth2Autodesk", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-autodesk.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/bitbucket": { + "patch": { + "summary": "Update project OAuth2 Bitbucket", + "operationId": "projectUpdateOAuth2Bitbucket", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Bitbucket configuration.", + "responses": { + "200": { + "description": "OAuth2Bitbucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-bitbucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "secret": { + "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", + "type": "string", + "example": "<SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/bitly": { + "patch": { + "summary": "Update project OAuth2 Bitly", + "operationId": "projectUpdateOAuth2Bitly", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Bitly configuration.", + "responses": { + "200": { + "description": "OAuth2Bitly", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-bitly.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/box": { + "patch": { + "summary": "Update project OAuth2 Box", + "operationId": "projectUpdateOAuth2Box", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Box configuration.", + "responses": { + "200": { + "description": "OAuth2Box", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Box" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-box.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/cloudflare": { + "patch": { + "summary": "Update project OAuth2 Cloudflare", + "operationId": "projectUpdateOAuth2Cloudflare", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Cloudflare configuration.", + "responses": { + "200": { + "description": "OAuth2Cloudflare", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-cloudflare.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Cloudflare OAuth2 app. For example: 4b866000000000000000000000c9e4e2", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Cloudflare OAuth2 app. For example: cfoc_5Q6YRl0000000000000000000000000000000000003d214f", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/dailymotion": { + "patch": { + "summary": "Update project OAuth2 Dailymotion", + "operationId": "projectUpdateOAuth2Dailymotion", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Dailymotion configuration.", + "responses": { + "200": { + "description": "OAuth2Dailymotion", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-dailymotion.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "apiKey": { + "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", + "type": "string", + "example": "<API_KEY>", + "nullable": true + }, + "apiSecret": { + "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", + "type": "string", + "example": "<API_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/discord": { + "patch": { + "summary": "Update project OAuth2 Discord", + "operationId": "projectUpdateOAuth2Discord", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Discord configuration.", + "responses": { + "200": { + "description": "OAuth2Discord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Discord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-discord.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array with at most one Discord OAuth2 prompt value. \"none\" means: skip the authorization screen for users who already authorized the app with the requested scopes. \"consent\" means: ask users who already authorized the app to approve it again. Pass an empty array to use the Discord default.", + "type": "array", + "items": { + "title": "ProjectOAuth2DiscordPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/disqus": { + "patch": { + "summary": "Update project OAuth2 Disqus", + "operationId": "projectUpdateOAuth2Disqus", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Disqus configuration.", + "responses": { + "200": { + "description": "OAuth2Disqus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-disqus.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "publicKey": { + "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "type": "string", + "example": "<PUBLIC_KEY>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/dropbox": { + "patch": { + "summary": "Update project OAuth2 Dropbox", + "operationId": "projectUpdateOAuth2Dropbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Dropbox configuration.", + "responses": { + "200": { + "description": "OAuth2Dropbox", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-dropbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appKey": { + "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", + "type": "string", + "example": "<APP_KEY>", + "nullable": true + }, + "appSecret": { + "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", + "type": "string", + "example": "<APP_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/etsy": { + "patch": { + "summary": "Update project OAuth2 Etsy", + "operationId": "projectUpdateOAuth2Etsy", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Etsy configuration.", + "responses": { + "200": { + "description": "OAuth2Etsy", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-etsy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyString": { + "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", + "type": "string", + "example": "<KEY_STRING>", + "nullable": true + }, + "sharedSecret": { + "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", + "type": "string", + "example": "<SHARED_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/facebook": { + "patch": { + "summary": "Update project OAuth2 Facebook", + "operationId": "projectUpdateOAuth2Facebook", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Facebook configuration.", + "responses": { + "200": { + "description": "OAuth2Facebook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-facebook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", + "type": "string", + "example": "<APP_ID>", + "nullable": true + }, + "appSecret": { + "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", + "type": "string", + "example": "<APP_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/figma": { + "patch": { + "summary": "Update project OAuth2 Figma", + "operationId": "projectUpdateOAuth2Figma", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Figma configuration.", + "responses": { + "200": { + "description": "OAuth2Figma", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Figma" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-figma.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/fusionauth": { + "patch": { + "summary": "Update project OAuth2 FusionAuth", + "operationId": "projectUpdateOAuth2FusionAuth", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 FusionAuth configuration.", + "responses": { + "200": { + "description": "OAuth2FusionAuth", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-fusion-auth.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/github": { + "patch": { + "summary": "Update project OAuth2 GitHub", + "operationId": "projectUpdateOAuth2GitHub", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 GitHub configuration.", + "responses": { + "200": { + "description": "OAuth2GitHub", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Github" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-git-hub.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of GitHub OAuth2 prompt values. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the GitHub default.", + "type": "array", + "items": { + "title": "ProjectOAuth2GitHubPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/gitlab": { + "patch": { + "summary": "Update project OAuth2 Gitlab", + "operationId": "projectUpdateOAuth2Gitlab", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Gitlab configuration.", + "responses": { + "200": { + "description": "OAuth2Gitlab", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-gitlab.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "type": "string", + "example": "<APPLICATION_ID>", + "nullable": true + }, + "secret": { + "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "type": "string", + "example": "<SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/google": { + "patch": { + "summary": "Update project OAuth2 Google", + "operationId": "projectUpdateOAuth2Google", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Google configuration.", + "responses": { + "200": { + "description": "OAuth2Google", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Google" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-google.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "type": "array", + "items": { + "title": "ProjectOAuth2GooglePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "nativeClientIds": { + "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in (Android and iOS client IDs). Together with the client ID, which is always accepted, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "enabled": { + "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", + "type": "boolean", + "example": false, + "nullable": true + }, + "nativeEnabled": { + "description": "Native Google sign-in status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a client ID or at least one native client ID to match tokens against, but no client secret: this method verifies a signature rather than redeeming an authorization code.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/huggingface": { + "patch": { + "summary": "Update project OAuth2 Hugging Face", + "operationId": "projectUpdateOAuth2HuggingFace", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Hugging Face configuration.", + "responses": { + "200": { + "description": "OAuth2HuggingFace", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-hugging-face.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Hugging Face OAuth2 app. For example: 2ab9cff9-d711-40ad-a91e-b08a49c42d24", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Hugging Face OAuth2 app. For example: oauth_app_secret_wcLhRtl000000000000000000000xbNdLt", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/kakao": { + "patch": { + "summary": "Update project OAuth2 Kakao", + "operationId": "projectUpdateOAuth2Kakao", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Kakao configuration.", + "responses": { + "200": { + "description": "OAuth2Kakao", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-kakao.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'REST API key' of Kakao OAuth2 app. For example: 839ff5000000000000000000013206de", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Kakao OAuth2 app. For example: jLNVOK00000000000000000000yJebea. Generate it under Kakao Login > Security and set its status to enabled", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Kakao OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"create\" means: prompt the user to sign up. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Kakao default.", + "type": "array", + "items": { + "title": "ProjectOAuth2KakaoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/keycloak": { + "patch": { + "summary": "Update project OAuth2 Keycloak", + "operationId": "projectUpdateOAuth2Keycloak", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Keycloak configuration.", + "responses": { + "200": { + "description": "OAuth2Keycloak", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-keycloak.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Keycloak instance. For example: keycloak.example.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "realmName": { + "description": "Keycloak realm name. For example: appwrite-realm", + "type": "string", + "example": "<REALM_NAME>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/kick": { + "patch": { + "summary": "Update project OAuth2 Kick", + "operationId": "projectUpdateOAuth2Kick", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Kick configuration.", + "responses": { + "200": { + "description": "OAuth2Kick", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Kick" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-kick.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/linkedin": { + "patch": { + "summary": "Update project OAuth2 Linkedin", + "operationId": "projectUpdateOAuth2Linkedin", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Linkedin configuration.", + "responses": { + "200": { + "description": "OAuth2Linkedin", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-linkedin.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "primaryClientSecret": { + "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", + "type": "string", + "example": "<PRIMARY_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/microsoft": { + "patch": { + "summary": "Update project OAuth2 Microsoft", + "operationId": "projectUpdateOAuth2Microsoft", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Microsoft configuration.", + "responses": { + "200": { + "description": "OAuth2Microsoft", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-microsoft.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", + "type": "string", + "example": "<APPLICATION_ID>", + "nullable": true + }, + "applicationSecret": { + "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "type": "string", + "example": "<APPLICATION_SECRET>", + "nullable": true + }, + "tenant": { + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", + "type": "string", + "example": "<TENANT>", + "nullable": true + }, + "prompt": { + "description": "Array of Microsoft OAuth2 prompt values. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Microsoft default.", + "type": "array", + "items": { + "title": "ProjectOAuth2MicrosoftPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/notion": { + "patch": { + "summary": "Update project OAuth2 Notion", + "operationId": "projectUpdateOAuth2Notion", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Notion configuration.", + "responses": { + "200": { + "description": "OAuth2Notion", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Notion" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-notion.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauthClientId": { + "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", + "type": "string", + "example": "<OAUTH_CLIENT_ID>", + "nullable": true + }, + "oauthClientSecret": { + "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", + "type": "string", + "example": "<OAUTH_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/oidc": { + "patch": { + "summary": "Update project OAuth2 Oidc", + "operationId": "projectUpdateOAuth2Oidc", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Oidc configuration.", + "responses": { + "200": { + "description": "OAuth2Oidc", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-oidc.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "wellKnownURL": { + "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "authorizationURL": { + "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "tokenURL": { + "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "userInfoURL": { + "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "prompt": { + "description": "Array of OpenID Connect prompt values controlling the authentication and consent screens. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "type": "array", + "items": { + "title": "ProjectOAuth2OidcPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "maxAge": { + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/okta": { + "patch": { + "summary": "Update project OAuth2 Okta", + "operationId": "projectUpdateOAuth2Okta", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Okta configuration.", + "responses": { + "200": { + "description": "OAuth2Okta", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Okta" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-okta.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "domain": { + "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", + "type": "string", + "example": "example.com", + "nullable": true + }, + "authorizationServerId": { + "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", + "type": "string", + "example": "<AUTHORIZATION_SERVER_ID>", + "nullable": true + }, + "prompt": { + "description": "Array of Okta OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Okta default.", + "type": "array", + "items": { + "title": "ProjectOAuth2OktaPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/paypal": { + "patch": { + "summary": "Update project OAuth2 Paypal", + "operationId": "projectUpdateOAuth2Paypal", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Paypal configuration.", + "responses": { + "200": { + "description": "OAuth2Paypal", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-paypal.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/paypalSandbox": { + "patch": { + "summary": "Update project OAuth2 PaypalSandbox", + "operationId": "projectUpdateOAuth2PaypalSandbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 PaypalSandbox configuration.", + "responses": { + "200": { + "description": "OAuth2Paypal", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-paypal-sandbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/podio": { + "patch": { + "summary": "Update project OAuth2 Podio", + "operationId": "projectUpdateOAuth2Podio", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Podio configuration.", + "responses": { + "200": { + "description": "OAuth2Podio", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Podio" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-podio.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/resend": { + "patch": { + "summary": "Update project OAuth2 Resend", + "operationId": "projectUpdateOAuth2Resend", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Resend configuration.", + "responses": { + "200": { + "description": "OAuth2Resend", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Resend" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-resend.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Resend OAuth2 app. For example: f47ac10b-58cc-4372-a567-0e02b2c3d479", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Resend OAuth2 app. For example: 9c1e4b00000000000000000000000000000000000000000000000000a72d5f4", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/salesforce": { + "patch": { + "summary": "Update project OAuth2 Salesforce", + "operationId": "projectUpdateOAuth2Salesforce", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Salesforce configuration.", + "responses": { + "200": { + "description": "OAuth2Salesforce", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-salesforce.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "customerKey": { + "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "type": "string", + "example": "<CUSTOMER_KEY>", + "nullable": true + }, + "customerSecret": { + "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", + "type": "string", + "example": "<CUSTOMER_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Salesforce OAuth2 prompt values. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Salesforce default.", + "type": "array", + "items": { + "title": "ProjectOAuth2SalesforcePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/slack": { + "patch": { + "summary": "Update project OAuth2 Slack", + "operationId": "projectUpdateOAuth2Slack", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Slack configuration.", + "responses": { + "200": { + "description": "OAuth2Slack", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Slack" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-slack.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/spotify": { + "patch": { + "summary": "Update project OAuth2 Spotify", + "operationId": "projectUpdateOAuth2Spotify", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Spotify configuration.", + "responses": { + "200": { + "description": "OAuth2Spotify", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-spotify.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/stripe": { + "patch": { + "summary": "Update project OAuth2 Stripe", + "operationId": "projectUpdateOAuth2Stripe", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Stripe configuration.", + "responses": { + "200": { + "description": "OAuth2Stripe", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-stripe.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "apiSecretKey": { + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "type": "string", + "example": "<API_SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tiktok": { + "patch": { + "summary": "Update project OAuth2 TikTok", + "operationId": "projectUpdateOAuth2TikTok", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 TikTok configuration.", + "responses": { + "200": { + "description": "OAuth2TikTok", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tik-tok.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client key' of TikTok OAuth2 app. For example: awz000000000tyw0", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client secret' of TikTok OAuth2 app. For example: 6wXewM00000000000000000000yXnite", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshift": { + "patch": { + "summary": "Update project OAuth2 Tradeshift", + "operationId": "projectUpdateOAuth2Tradeshift", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tradeshift.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "type": "string", + "example": "<OAUTH2_CLIENT_ID>", + "nullable": true + }, + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "type": "string", + "example": "<OAUTH2_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshiftBox": { + "patch": { + "summary": "Update project OAuth2 Tradeshift Sandbox", + "operationId": "projectUpdateOAuth2TradeshiftSandbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "type": "string", + "example": "<OAUTH2_CLIENT_ID>", + "nullable": true + }, + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "type": "string", + "example": "<OAUTH2_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/twitch": { + "patch": { + "summary": "Update project OAuth2 Twitch", + "operationId": "projectUpdateOAuth2Twitch", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Twitch configuration.", + "responses": { + "200": { + "description": "OAuth2Twitch", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-twitch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/webflow": { + "patch": { + "summary": "Update project OAuth2 Webflow", + "operationId": "projectUpdateOAuth2Webflow", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Webflow configuration.", + "responses": { + "200": { + "description": "OAuth2Webflow", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-webflow.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Webflow OAuth2 app. For example: 8bb20000000000000000000000000000000000000000000000000000000040dd", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Webflow OAuth2 app. For example: 59bf00000000000000000000000000000000000000000000000000000000fe59", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/wordpress": { + "patch": { + "summary": "Update project OAuth2 WordPress", + "operationId": "projectUpdateOAuth2WordPress", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 WordPress configuration.", + "responses": { + "200": { + "description": "OAuth2WordPress", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-word-press.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/x": { + "patch": { + "summary": "Update project OAuth2 X", + "operationId": "projectUpdateOAuth2X", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 X configuration.", + "responses": { + "200": { + "description": "OAuth2X", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2X" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2x.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "customerKey": { + "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", + "type": "string", + "example": "<CUSTOMER_KEY>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/yahoo": { + "patch": { + "summary": "Update project OAuth2 Yahoo", + "operationId": "projectUpdateOAuth2Yahoo", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Yahoo configuration.", + "responses": { + "200": { + "description": "OAuth2Yahoo", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-yahoo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/yandex": { + "patch": { + "summary": "Update project OAuth2 Yandex", + "operationId": "projectUpdateOAuth2Yandex", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Yandex configuration.", + "responses": { + "200": { + "description": "OAuth2Yandex", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-yandex.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/zoho": { + "patch": { + "summary": "Update project OAuth2 Zoho", + "operationId": "projectUpdateOAuth2Zoho", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Zoho configuration.", + "responses": { + "200": { + "description": "OAuth2Zoho", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Zoho OAuth2 prompt values. \"consent\" means: prompt the user for consent. Pass an empty array to use the Zoho default.", + "type": "array", + "items": { + "title": "ProjectOAuth2ZohoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/zoom": { + "patch": { + "summary": "Update project OAuth2 Zoom", + "operationId": "projectUpdateOAuth2Zoom", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Zoom configuration.", + "responses": { + "200": { + "description": "OAuth2Zoom", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-zoom.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/{providerId}": { + "get": { + "summary": "Get project OAuth2 provider", + "operationId": "projectGetOAuth2Provider", + "tags": [ + "project" + ], + "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", + "responses": { + "200": { + "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Webflow, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2HuggingFace, or OAuth2Resend, or OAuth2Cloudflare, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft, or OAuth2TikTok, or OAuth2Kakao", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/oAuth2Github" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Discord" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Figma" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Box" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Google" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + }, + { + "$ref": "#\/components\/schemas\/oAuth2X" + }, + { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Slack" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Podio" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Notion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + }, + { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Resend" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + }, + { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Apple" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Okta" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kick" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + }, + { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/components\/schemas\/oAuth2Github", + "discord": "#\/components\/schemas\/oAuth2Discord", + "figma": "#\/components\/schemas\/oAuth2Figma", + "dropbox": "#\/components\/schemas\/oAuth2Dropbox", + "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", + "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", + "bitly": "#\/components\/schemas\/oAuth2Bitly", + "box": "#\/components\/schemas\/oAuth2Box", + "autodesk": "#\/components\/schemas\/oAuth2Autodesk", + "google": "#\/components\/schemas\/oAuth2Google", + "zoom": "#\/components\/schemas\/oAuth2Zoom", + "zoho": "#\/components\/schemas\/oAuth2Zoho", + "yandex": "#\/components\/schemas\/oAuth2Yandex", + "x": "#\/components\/schemas\/oAuth2X", + "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "webflow": "#\/components\/schemas\/oAuth2Webflow", + "twitch": "#\/components\/schemas\/oAuth2Twitch", + "stripe": "#\/components\/schemas\/oAuth2Stripe", + "spotify": "#\/components\/schemas\/oAuth2Spotify", + "slack": "#\/components\/schemas\/oAuth2Slack", + "podio": "#\/components\/schemas\/oAuth2Podio", + "notion": "#\/components\/schemas\/oAuth2Notion", + "salesforce": "#\/components\/schemas\/oAuth2Salesforce", + "yahoo": "#\/components\/schemas\/oAuth2Yahoo", + "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", + "resend": "#\/components\/schemas\/oAuth2Resend", + "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", + "linkedin": "#\/components\/schemas\/oAuth2Linkedin", + "disqus": "#\/components\/schemas\/oAuth2Disqus", + "amazon": "#\/components\/schemas\/oAuth2Amazon", + "etsy": "#\/components\/schemas\/oAuth2Etsy", + "facebook": "#\/components\/schemas\/oAuth2Facebook", + "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", + "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", + "paypal": "#\/components\/schemas\/oAuth2Paypal", + "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", + "gitlab": "#\/components\/schemas\/oAuth2Gitlab", + "authentik": "#\/components\/schemas\/oAuth2Authentik", + "auth0": "#\/components\/schemas\/oAuth2Auth0", + "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", + "keycloak": "#\/components\/schemas\/oAuth2Keycloak", + "oidc": "#\/components\/schemas\/oAuth2Oidc", + "apple": "#\/components\/schemas\/oAuth2Apple", + "okta": "#\/components\/schemas\/oAuth2Okta", + "kick": "#\/components\/schemas\/oAuth2Kick", + "microsoft": "#\/components\/schemas\/oAuth2Microsoft", + "tiktok": "#\/components\/schemas\/oAuth2TikTok", + "kakao": "#\/components\/schemas\/oAuth2Kakao" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/get-o-auth-2-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "OAuth2 provider key. For example: github, google, apple.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "ProjectOAuthProviderId", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/project\/platforms": { + "get": { + "summary": "List project platforms", + "operationId": "projectListPlatforms", + "tags": [ + "project" + ], + "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", + "responses": { + "200": { + "description": "Platforms List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/list-platforms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/platforms\/android": { + "post": { + "summary": "Create project Android platform", + "operationId": "projectCreateAndroidPlatform", + "tags": [ + "project" + ], + "description": "Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Android", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformAndroid" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-android-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "applicationId": { + "description": "Android application ID. Max length: 256 chars.", + "type": "string", + "example": "<APPLICATION_ID>" + } + }, + "required": [ + "platformId", + "name", + "applicationId" + ] + } + } + } + } + } + }, + "\/project\/platforms\/android\/{platformId}": { + "put": { + "summary": "Update project Android platform", + "operationId": "projectUpdateAndroidPlatform", + "tags": [ + "project" + ], + "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", + "responses": { + "200": { + "description": "Platform Android", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformAndroid" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-android-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "applicationId": { + "description": "Android application ID. Max length: 256 chars.", + "type": "string", + "example": "<APPLICATION_ID>" + } + }, + "required": [ + "name", + "applicationId" + ] + } + } + } + } + } + }, + "\/project\/platforms\/apple": { + "post": { + "summary": "Create project Apple platform", + "operationId": "projectCreateApplePlatform", + "tags": [ + "project" + ], + "description": "Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-apple-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "bundleIdentifier": { + "description": "Apple bundle identifier. Max length: 256 chars.", + "type": "string", + "example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "platformId", + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/apple\/{platformId}": { + "put": { + "summary": "Update project Apple platform", + "operationId": "projectUpdateApplePlatform", + "tags": [ + "project" + ], + "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", + "responses": { + "200": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-apple-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "bundleIdentifier": { + "description": "Apple bundle identifier. Max length: 256 chars.", + "type": "string", + "example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux": { + "post": { + "summary": "Create project Linux platform", + "operationId": "projectCreateLinuxPlatform", + "tags": [ + "project" + ], + "description": "Create a new Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Linux", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformLinux" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-linux-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageName": { + "description": "Linux package name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux\/{platformId}": { + "put": { + "summary": "Update project Linux platform", + "operationId": "projectUpdateLinuxPlatform", + "tags": [ + "project" + ], + "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", + "responses": { + "200": { + "description": "Platform Linux", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformLinux" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-linux-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageName": { + "description": "Linux package name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_NAME>" + } + }, + "required": [ + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web": { + "post": { + "summary": "Create project web platform", + "operationId": "projectCreateWebPlatform", + "tags": [ + "project" + ], + "description": "Create a new web platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-web-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "hostname": { + "description": "Platform web hostname. Max length: 256 chars.", + "type": "string", + "example": "app.example.com" + } + }, + "required": [ + "platformId", + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web\/{platformId}": { + "put": { + "summary": "Update project web platform", + "operationId": "projectUpdateWebPlatform", + "tags": [ + "project" + ], + "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", + "responses": { + "200": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-web-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "hostname": { + "description": "Platform web hostname. Max length: 256 chars.", + "type": "string", + "example": "app.example.com" + } + }, + "required": [ + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/project\/platforms\/windows": { + "post": { + "summary": "Create project Windows platform", + "operationId": "projectCreateWindowsPlatform", + "tags": [ + "project" + ], + "description": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Windows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-windows-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageIdentifierName": { + "description": "Windows package identifier name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/windows\/{platformId}": { + "put": { + "summary": "Update project Windows platform", + "operationId": "projectUpdateWindowsPlatform", + "tags": [ + "project" + ], + "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", + "responses": { + "200": { + "description": "Platform Windows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-windows-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageIdentifierName": { + "description": "Windows package identifier name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/{platformId}": { + "get": { + "summary": "Get project platform", + "operationId": "projectGetPlatform", + "tags": [ + "project" + ], + "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", + "responses": { + "200": { + "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/platformWeb" + }, + { + "$ref": "#\/components\/schemas\/platformApple" + }, + { + "$ref": "#\/components\/schemas\/platformAndroid" + }, + { + "$ref": "#\/components\/schemas\/platformWindows" + }, + { + "$ref": "#\/components\/schemas\/platformLinux" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "web": "#\/components\/schemas\/platformWeb", + "apple": "#\/components\/schemas\/platformApple", + "android": "#\/components\/schemas\/platformAndroid", + "windows": "#\/components\/schemas\/platformWindows", + "linux": "#\/components\/schemas\/platformLinux" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/get-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete project platform", + "operationId": "projectDeletePlatform", + "tags": [ + "project" + ], + "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/delete-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project\/policies": { + "get": { + "summary": "List project policies", + "operationId": "projectListPolicies", + "tags": [ + "project" + ], + "description": "Get a list of all project policies and their current configuration.", + "responses": { + "200": { + "description": "Policies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "project.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/policies\/deny-aliased-email": { + "patch": { + "summary": "Update deny aliased email policy", + "operationId": "projectUpdateDenyAliasedEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-aliased-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block aliased emails during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-corporate-email": { + "patch": { + "summary": "Update deny non-corporate email policy", + "operationId": "projectUpdateDenyCorporateEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if only corporate email addresses (non-free and non-disposable domains) are allowed during new user sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-corporate-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-disposable-email": { + "patch": { + "summary": "Update deny disposable email policy", + "operationId": "projectUpdateDenyDisposableEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-disposable-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-free-email": { + "patch": { + "summary": "Update deny free email policy", + "operationId": "projectUpdateDenyFreeEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-free-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block free email addresses during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/membership-privacy": { + "patch": { + "summary": "Update membership privacy policy", + "operationId": "projectUpdateMembershipPrivacyPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if team members can see other members information. When enabled, all team members can see ID, name, email, phone number, and MFA status of other members..", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-membership-privacy-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userEmail": { + "description": "Set to true if you want make user email visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userPhone": { + "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userName": { + "description": "Set to true if you want make user name visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userMFA": { + "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userAccessedAt": { + "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/mfa-factors": { + "patch": { + "summary": "Update MFA factors policy", + "operationId": "projectUpdateMFAFactorsPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control which factors users can use to complete an MFA challenge. Disabled factors cannot be used to create a challenge and are reported as unavailable when listing factors. The custom factor is disabled by default; enable it to deliver challenge codes through your own channel. Recovery codes always remain available as a fallback.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-mfa-factors-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "totp": { + "description": "Set to true to allow TOTP to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "email": { + "description": "Set to true to allow email to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "phone": { + "description": "Set to true to allow phone (SMS) to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "custom": { + "description": "Set to true to allow the custom factor to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/passkey": { + "patch": { + "summary": "Update passkey policy", + "operationId": "projectUpdatePasskeyPolicy", + "tags": [ + "project" + ], + "description": "Configure the relying party passkeys are bound to. The relying party ID is the domain of your application, and origins are the exact web origins allowed to register and sign in with passkeys. Passkeys stay unavailable until both are set and the passkey auth method is enabled. The relying party ID cannot change while users have passkeys, and any change invalidates ceremonies in progress.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-passkey-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": { + "rpId": { + "description": "Relying party ID: the domain of your application, such as `example.com`. Use `localhost` for local development.", + "type": "string", + "example": "<RP_ID>" + }, + "origins": { + "description": "Web origins allowed to use passkeys, such as `https:\/\/example.com` or `https:\/\/app.example.com`. Each must be HTTPS on the relying party ID or one of its subdomains, without a path. HTTP is only allowed for `localhost`. Maximum of 10 origins.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/project\/policies\/password-dictionary": { + "patch": { + "summary": "Update password dictionary policy", + "operationId": "projectUpdatePasswordDictionaryPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if new passwords are checked against most common passwords dictionary. When enabled, and user changes their password, password must not be contained in the dictionary.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-dictionary-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-history": { + "patch": { + "summary": "Update password history policy", + "operationId": "projectUpdatePasswordHistoryPolicy", + "tags": [ + "project" + ], + "description": "Updates one of password strength policies. Based on total length configured, previous password hashes are stored, and users cannot choose a new password that is already stored in the passwird history list, when updating an user password, or setting new one through password recovery.\n\nKeep in mind, while password history policy is disabled, the history is not being stored. Enabling the policy will not have any history on existing users, and it will only start to collect and enforce the policy on password changes since the policy is enabled.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-history-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the password history length per user. Value can be between 1 and 20, or null to disable the limit.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-personal-data": { + "patch": { + "summary": "Update password personal data policy", + "operationId": "projectUpdatePasswordPersonalDataPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if password strength is checked against personal data. When enabled, and user sets or changes their password, the password must not contain user ID, name, email or phone number.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-personal-data-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-pwned": { + "patch": { + "summary": "Update password pwned policy", + "operationId": "projectUpdatePasswordPwnedPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if passwords are checked against the Have I Been Pwned breach database. When enabled, every password a user signs up, signs in or resets with is checked and the result is recorded on the user as `passwordPwned`. On its own the policy only records. Enable `users` to reject a breached password when a user signs up or sets a new password, and `sessions` to refuse a sign-in with a breached password until it is reset. Only the first five characters of the password hash are ever shared with the service. Options left out keep their current value.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-pwned-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password pwned policy. Set to true to check passwords against known data breaches and record the result on the user, or false to never check. Default is true. On its own this only records; use `users` and `sessions` to block. When changing this policy, existing passwords remain valid.", + "type": "boolean", + "example": false + }, + "sessions": { + "description": "Whether a sign-in with a breached password is refused until the password is reset. Default is false, which allows the sign-in and only records the result.", + "type": "boolean", + "example": false + }, + "users": { + "description": "Whether a breached password is rejected when a user signs up or sets a new password. Default is false, which allows the password and only records the result.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/password-strength": { + "patch": { + "summary": "Update password strength policy", + "operationId": "projectUpdatePasswordStrengthPolicy", + "tags": [ + "project" + ], + "description": "Update the password strength requirements for users in the project.", + "responses": { + "200": { + "description": "Policy Password Strength", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-strength-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "min": { + "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", + "type": "integer", + "example": 8, + "format": "int32" + }, + "uppercase": { + "description": "Whether passwords must include at least one uppercase letter.", + "type": "boolean", + "example": false + }, + "lowercase": { + "description": "Whether passwords must include at least one lowercase letter.", + "type": "boolean", + "example": false + }, + "number": { + "description": "Whether passwords must include at least one number.", + "type": "boolean", + "example": false + }, + "symbols": { + "description": "Whether passwords must include at least one symbol.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/session-alert": { + "patch": { + "summary": "Update session alert policy", + "operationId": "projectUpdateSessionAlertPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if email alert is sent upon session creation. When enabled, and user signs into their account, they will be sent an email notification. There is an exception, the first session after a new sign up does not trigger an alert, even if the policy is enabled.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-alert-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-duration": { + "patch": { + "summary": "Update session duration policy", + "operationId": "projectUpdateSessionDurationPolicy", + "tags": [ + "project" + ], + "description": "Update maximum duration how long sessions created within a project should stay active for.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-duration-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Maximum session length in seconds. Minium allowed value is 60 seconds, and maximum is 1 year, which is 31536000 seconds.", + "type": "integer", + "example": 60, + "format": "int32" + } + }, + "required": [ + "duration" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-invalidation": { + "patch": { + "summary": "Update session invalidation policy", + "operationId": "projectUpdateSessionInvalidationPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if existing sessions should be invalidated when a password of a user is changed. When enabled, and user changes their password, they will be logged out of all their devices.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-invalidation-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-limit": { + "patch": { + "summary": "Update session limit policy", + "operationId": "projectUpdateSessionLimitPolicy", + "tags": [ + "project" + ], + "description": "Update the maximum number of sessions allowed per user. When the limit is hit, the oldest session will be deleted to make room for new one.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-limit-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 100.", + "type": "integer", + "example": 1, + "format": "int32" + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/user-limit": { + "patch": { + "summary": "Update user limit policy", + "operationId": "projectUpdateUserLimitPolicy", + "tags": [ + "project" + ], + "description": "Update the maximum number of users in the project. When the limit is hit or amount of existing users already exceeded the limit, all users remain active, but new user sign up will be prohibited.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-user-limit-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the maximum number of users allowed in the project. Value can be between 0 and 10000. Use 0 or null to disable the limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/{policyId}": { + "get": { + "summary": "Get project policy", + "operationId": "projectGetPolicy", + "tags": [ + "project" + ], + "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", + "responses": { + "200": { + "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Password Pwned, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy MFA Factors, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email, or Policy Passkey", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$ref": "#\/components\/schemas\/policyMfaFactors" + }, + { + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" + }, + { + "$ref": "#\/components\/schemas\/policyPasskey" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "password-pwned": "#\/components\/schemas\/policyPasswordPwned", + "session-alert": "#\/components\/schemas\/policySessionAlert", + "session-duration": "#\/components\/schemas\/policySessionDuration", + "session-invalidation": "#\/components\/schemas\/policySessionInvalidation", + "session-limit": "#\/components\/schemas\/policySessionLimit", + "user-limit": "#\/components\/schemas\/policyUserLimit", + "membership-privacy": "#\/components\/schemas\/policyMembershipPrivacy", + "mfa-factors": "#\/components\/schemas\/policyMfaFactors", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail", + "passkey": "#\/components\/schemas\/policyPasskey" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "project.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, password-pwned, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email, passkey.", + "required": true, + "schema": { + "type": "string", + "example": "password-dictionary", + "title": "ProjectPolicyId", + "oneOf": [ + { + "type": "string", + "enum": [ + "password-dictionary" + ], + "title": "password-dictionary" + }, + { + "type": "string", + "enum": [ + "password-history" + ], + "title": "password-history" + }, + { + "type": "string", + "enum": [ + "password-strength" + ], + "title": "password-strength" + }, + { + "type": "string", + "enum": [ + "password-personal-data" + ], + "title": "password-personal-data" + }, + { + "type": "string", + "enum": [ + "password-pwned" + ], + "title": "password-pwned" + }, + { + "type": "string", + "enum": [ + "session-alert" + ], + "title": "session-alert" + }, + { + "type": "string", + "enum": [ + "session-duration" + ], + "title": "session-duration" + }, + { + "type": "string", + "enum": [ + "session-invalidation" + ], + "title": "session-invalidation" + }, + { + "type": "string", + "enum": [ + "session-limit" + ], + "title": "session-limit" + }, + { + "type": "string", + "enum": [ + "user-limit" + ], + "title": "user-limit" + }, + { + "type": "string", + "enum": [ + "membership-privacy" + ], + "title": "membership-privacy" + }, + { + "type": "string", + "enum": [ + "mfa-factors" + ], + "title": "mfa-factors" + }, + { + "type": "string", + "enum": [ + "deny-aliased-email" + ], + "title": "deny-aliased-email" + }, + { + "type": "string", + "enum": [ + "deny-disposable-email" + ], + "title": "deny-disposable-email" + }, + { + "type": "string", + "enum": [ + "deny-free-email" + ], + "title": "deny-free-email" + }, + { + "type": "string", + "enum": [ + "deny-corporate-email" + ], + "title": "deny-corporate-email" + }, + { + "type": "string", + "enum": [ + "passkey" + ], + "title": "passkey" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/project\/protocols\/{protocolId}": { + "patch": { + "summary": "Update project protocol", + "operationId": "projectUpdateProtocol", + "tags": [ + "project" + ], + "description": "Update properties of a specific protocol. Use this endpoint to enable or disable a protocol in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-protocol.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "protocolId", + "description": "Protocol name. Can be one of: rest, graphql, websocket", + "required": true, + "schema": { + "type": "string", + "example": "rest", + "title": "ProjectProtocolId", + "oneOf": [ + { + "type": "string", + "enum": [ + "rest" + ], + "title": "rest" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "websocket" + ], + "title": "websocket" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Protocol status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/services\/{serviceId}": { + "patch": { + "summary": "Update project service", + "operationId": "projectUpdateService", + "tags": [ + "project" + ], + "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-service.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "serviceId", + "description": "Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging, advisor, oauth2", + "required": true, + "schema": { + "type": "string", + "example": "account", + "title": "ProjectServiceId", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "avatars" + ], + "title": "avatars" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "locale" + ], + "title": "locale" + }, + { + "type": "string", + "enum": [ + "health" + ], + "title": "health" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "vcs" + ], + "title": "vcs" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "proxy" + ], + "title": "proxy" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "advisor" + ], + "title": "advisor" + }, + { + "type": "string", + "enum": [ + "oauth2" + ], + "title": "oauth2" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Service status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/smtp": { + "patch": { + "summary": "Update project SMTP configuration", + "operationId": "projectUpdateSMTP", + "tags": [ + "project" + ], + "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "smtp", + "demo": "project\/update-smtp.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "host": { + "description": "SMTP server hostname (domain)", + "type": "string", + "example": "example.com", + "nullable": true + }, + "port": { + "description": "SMTP server port", + "type": "integer", + "example": 587, + "format": "int32", + "nullable": true + }, + "username": { + "description": "SMTP server username. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<USERNAME>", + "nullable": true + }, + "password": { + "description": "SMTP server password. Pass an empty string to clear a previously set value. This property is stored securely and cannot be read in future (write-only).", + "type": "string", + "example": "password", + "format": "password", + "nullable": true + }, + "senderEmail": { + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "senderName": { + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<SENDER_NAME>", + "nullable": true + }, + "replyToEmail": { + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + }, + "secure": { + "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", + "type": "string", + "example": "tls", + "title": "ProjectSMTPSecure", + "oneOf": [ + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + } + ], + "nullable": true + }, + "enabled": { + "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/smtp\/tests": { + "post": { + "summary": "Create project SMTP test", + "operationId": "projectCreateSMTPTest", + "tags": [ + "project" + ], + "description": "Send a test email to verify SMTP configuration. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "smtp", + "demo": "project\/create-smtp-test.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emails": { + "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", + "type": "array", + "example": [ + "recipient@example.com" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "emails" + ] + } + } + } + } + } + }, + "\/project\/templates\/email": { + "get": { + "summary": "List project email templates", + "operationId": "projectListEmailTemplates", + "tags": [ + "project" + ], + "description": "Get a list of all custom email templates configured for the project. This endpoint returns an array of all configured email templates and their locales.", + "responses": { + "200": { + "description": "Email Templates List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplateList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/list-email-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "patch": { + "summary": "Update project email template", + "operationId": "projectUpdateEmailTemplate", + "tags": [ + "project" + ], + "description": "Update a custom email template for the specified locale and type. Use this endpoint to modify the content of your email templates.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/update-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "templateId": { + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "locale": { + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "subject": { + "description": "Subject of the email template. Can be up to 255 characters.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "message": { + "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", + "type": "string", + "example": "<MESSAGE>", + "nullable": true + }, + "senderName": { + "description": "Name of the email sender.", + "type": "string", + "example": "<SENDER_NAME>", + "nullable": true + }, + "senderEmail": { + "description": "Email of the sender. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToEmail": { + "description": "Reply to email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Reply to name.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + } + }, + "required": [ + "templateId" + ] + } + } + } + } + } + }, + "\/project\/templates\/email\/{templateId}": { + "get": { + "summary": "Get project email template", + "operationId": "projectGetEmailTemplate", + "tags": [ + "project" + ], + "description": "Get a custom email template for the specified locale and type. This endpoint returns the template content, subject, and other configuration details.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/get-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "required": true, + "schema": { + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "schema": { + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/project\/variables": { + "get": { + "summary": "List project variables", + "operationId": "projectListVariables", + "tags": [ + "project" + ], + "description": "Get a list of all project environment variables.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project variable", + "operationId": "projectCreateVariable", + "tags": [ + "project" + ], + "description": "Create a new project environment variable. These variables can be accessed by all functions and sites in the project.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/project\/variables\/{variableId}": { + "get": { + "summary": "Get project variable", + "operationId": "projectGetVariable", + "tags": [ + "project" + ], + "description": "Get a variable by its unique ID. ", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project variable", + "operationId": "projectUpdateVariable", + "tags": [ + "project" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete project variable", + "operationId": "projectDeleteVariable", + "tags": [ + "project" + ], + "description": "Delete a variable by its unique ID. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons": { + "get": { + "summary": "List project addons", + "operationId": "projectsListAddons", + "tags": [ + "projects" + ], + "description": "List all billing addons for a project.\n", + "responses": { + "200": { + "description": "Addons list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/list-addons.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons\/premium-geo-db": { + "post": { + "summary": "Create Premium Geo DB addon for project", + "operationId": "projectsCreatePremiumGeoDBAddon", + "tags": [ + "projects" + ], + "description": "Create a Premium Geo DB addon for a project.\n", + "responses": { + "201": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/create-premium-geo-db-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons\/{addonId}": { + "get": { + "summary": "Get project addon", + "operationId": "projectsGetAddon", + "tags": [ + "projects" + ], + "description": "Get the details of a billing addon for a project.\n", + "responses": { + "200": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/get-addon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete project addon", + "operationId": "projectsDeleteAddon", + "tags": [ + "projects" + ], + "description": "Delete a billing addon for a project.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/delete-addon.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons\/{addonId}\/confirmations": { + "post": { + "summary": "Confirm project addon payment after 3DS authentication", + "operationId": "projectsConfirmAddonPayment", + "tags": [ + "projects" + ], + "description": "Confirm payment for a billing addon for a project.\n", + "responses": { + "200": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/confirm-addon-payment.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "example": "<ADDON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/addons\/{addon}\/price": { + "get": { + "summary": "Get project addon price", + "operationId": "projectsGetAddonPrice", + "tags": [ + "projects" + ], + "description": "Get the price details for a billing addon for a project, including the prorated amount for the remaining days in the current billing cycle.\n", + "responses": { + "200": { + "description": "AddonPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addonPrice" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/get-addon-price.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "addon", + "description": "Addon key identifier (e.g. premiumGeoDB).", + "required": true, + "schema": { + "type": "string", + "example": "baa" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/console-access": { + "patch": { + "summary": "Record console access to a project", + "operationId": "projectsUpdateConsoleAccess", + "tags": [ + "projects" + ], + "description": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/update-console-access.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/schedules": { + "get": { + "summary": "List schedules", + "operationId": "projectsListSchedules", + "tags": [ + "projects" + ], + "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Schedules List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/scheduleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "schedules", + "demo": "projects\/list-schedules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: resourceType, resourceId, projectId, schedule, active, region", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create schedule", + "operationId": "projectsCreateSchedule", + "tags": [ + "projects" + ], + "description": "Create a new schedule for a resource.", + "responses": { + "201": { + "description": "Schedule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/schedule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "schedules", + "demo": "projects\/create-schedule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", + "type": "string", + "example": "function", + "title": "ScheduleResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "execution" + ], + "title": "execution" + }, + { + "type": "string", + "enum": [ + "message" + ], + "title": "message" + }, + { + "type": "string", + "enum": [ + "backup" + ], + "title": "backup" + } + ] + }, + "resourceId": { + "description": "The resource ID to associate with this schedule.", + "type": "string", + "example": "<RESOURCE_ID>" + }, + "schedule": { + "description": "Schedule CRON expression.", + "type": "string", + "example": "0 0 * * *" + }, + "active": { + "description": "Whether the schedule is active.", + "type": "boolean", + "default": false, + "example": false + }, + "data": { + "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "resourceType", + "resourceId", + "schedule" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/schedules\/{scheduleId}": { + "get": { + "summary": "Get schedule", + "operationId": "projectsGetSchedule", + "tags": [ + "projects" + ], + "description": "Get a schedule by its unique ID.", + "responses": { + "200": { + "description": "Schedule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/schedule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "schedules", + "demo": "projects\/get-schedule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "scheduleId", + "description": "Schedule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SCHEDULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/stages": { + "get": { + "summary": "List stages", + "operationId": "projectsListStages", + "tags": [ + "projects" + ], + "description": "Get the onboarding stages for the current project, including each stage\u2019s SDK method key and status (for example pending, completed, or skipped).\n", + "responses": { + "200": { + "description": "Stages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/stageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "stages", + "demo": "projects\/list-stages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "stages.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/stages\/{stageId}": { + "patch": { + "summary": "Update stage", + "operationId": "projectsUpdateStage", + "tags": [ + "projects" + ], + "description": "Update an onboarding stage for the current project. Use this endpoint to skip a stage or leave it unchanged without performing the related API action.\n", + "responses": { + "200": { + "description": "Stage", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/stage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "stages", + "demo": "projects\/update-stage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "stages.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "stageId", + "description": "SDK method key (namespace.method).", + "required": true, + "schema": { + "type": "string", + "example": "<STAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "skip": { + "description": "Mark the stage as skipped.", + "type": "boolean", + "default": true, + "example": false + } + } + } + } + } + } + } + }, + "\/projects\/{projectId}\/status": { + "patch": { + "summary": "Update the status of a project", + "operationId": "projectsUpdateStatus", + "tags": [ + "projects" + ], + "description": "Update the status of a project. Can be used to archive\/restore projects, and to restore paused projects. When restoring a paused project, the console fingerprint header must be provided and the project must not be blocked for any reason other than inactivity.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "projects\/update-status.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "New status for the project", + "type": "string", + "example": "active", + "title": "Status", + "oneOf": [ + { + "type": "string", + "enum": [ + "active" + ], + "title": "active" + } + ] + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/team": { + "patch": { + "summary": "Update project team", + "operationId": "projectsUpdateTeam", + "tags": [ + "projects" + ], + "description": "Update the team ID of a project allowing for it to be transferred to another team.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "projects\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer project to.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/proxy\/invalidations": { + "post": { + "summary": "Create invalidation", + "operationId": "proxyCreateInvalidation", + "tags": [ + "proxy" + ], + "description": "Create a new CDN cache invalidation for a domain. Executes a hard purge of cached content.\n\nDepending on type, the invalidation purges a single cache tag, a single URL path, or all cached content for the domain.\n\nDomains that route to a function do not support cache invalidation.", + "responses": { + "201": { + "description": "Invalidation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyInvalidation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "proxy\/create-invalidation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "proxy.invalidations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "type": { + "description": "Type of reference passed. Allowed values are: tag, path, all", + "type": "string", + "example": "tag", + "title": "InvalidationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + }, + { + "type": "string", + "enum": [ + "path" + ], + "title": "path" + }, + { + "type": "string", + "enum": [ + "all" + ], + "title": "all" + } + ] + }, + "reference": { + "description": "Reference to invalidate. Depending on type this can be: cache tag name (up to 128 characters), URL path (up to 2048 characters). Not required when type is all.", + "type": "string", + "default": "", + "example": "<REFERENCE>" + } + }, + "required": [ + "domain", + "type" + ] + }, + "examples": { + "tag": { + "summary": "Purge a cache tag", + "value": { + "domain": "example.com", + "type": "tag", + "reference": "<TAG>" + } + }, + "path": { + "summary": "Purge a URL path", + "value": { + "domain": "example.com", + "type": "path", + "reference": "\/blog\/hello-world" + } + } + } + } + } + } + } + }, + "\/proxy\/rules": { + "get": { + "summary": "List rules", + "operationId": "proxyListRules", + "tags": [ + "proxy" + ], + "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rule List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/proxy\/rules\/api": { + "post": { + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/create-api-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + } + }, + "required": [ + "domain" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/function": { + "post": { + "summary": "Create function rule", + "operationId": "proxyCreateFunctionRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for executing Appwrite Function on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/create-function-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "functionId": { + "description": "ID of function to be executed.", + "type": "string", + "example": "<FUNCTION_ID>" + }, + "branch": { + "description": "Name of VCS branch to deploy changes automatically", + "type": "string", + "default": "", + "example": "<BRANCH>" + } + }, + "required": [ + "domain", + "functionId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create redirect rule", + "operationId": "proxyCreateRedirectRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for to redirect from custom domain to another domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/create-redirect-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "url": { + "description": "Target URL of redirection", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "statusCode": { + "description": "Status code of redirection", + "type": "string", + "example": "301", + "title": "StatusCode", + "oneOf": [ + { + "type": "string", + "enum": [ + "301" + ], + "title": "MovedPermanently" + }, + { + "type": "string", + "enum": [ + "302" + ], + "title": "Found" + }, + { + "type": "string", + "enum": [ + "307" + ], + "title": "TemporaryRedirect" + }, + { + "type": "string", + "enum": [ + "308" + ], + "title": "PermanentRedirect" + } + ] + }, + "resourceId": { + "description": "ID of parent resource.", + "type": "string", + "example": "<RESOURCE_ID>" + }, + "resourceType": { + "description": "Type of parent resource.", + "type": "string", + "example": "site", + "title": "ProxyResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "site" + ], + "title": "Site" + }, + { + "type": "string", + "enum": [ + "function" + ], + "title": "Function" + } + ] + } + }, + "required": [ + "domain", + "url", + "statusCode", + "resourceId", + "resourceType" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/site": { + "post": { + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/create-site-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "siteId": { + "description": "ID of site to be executed.", + "type": "string", + "example": "<SITE_ID>" + }, + "branch": { + "description": "Name of VCS branch to deploy changes automatically", + "type": "string", + "default": "", + "example": "<BRANCH>" + } + }, + "required": [ + "domain", + "siteId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/{ruleId}": { + "get": { + "summary": "Get rule", + "operationId": "proxyGetRule", + "tags": [ + "proxy" + ], + "description": "Get a proxy rule by its unique ID.", + "responses": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete rule", + "operationId": "proxyDeleteRule", + "tags": [ + "proxy" + ], + "description": "Delete a proxy rule by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/delete-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/proxy\/rules\/{ruleId}\/status": { + "patch": { + "summary": "Update rule status", + "operationId": "proxyUpdateRuleStatus", + "tags": [ + "proxy" + ], + "description": "If not succeeded yet, retry verification process of a proxy rule domain. This endpoint triggers domain verification by checking DNS records. If verification is successful, a TLS certificate will be automatically provisioned for the domain asynchronously in the background.", + "responses": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/update-rule-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/reports": { + "get": { + "summary": "List reports", + "operationId": "advisorListReports", + "tags": [ + "advisor" + ], + "description": "Get a list of all the project's analyzer reports. You can use the query params to filter your results.\n", + "responses": { + "200": { + "description": "Reports List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/reportList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "reports", + "demo": "advisor\/list-reports.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "reports.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: appId, type, targetType, target, analyzedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/reports\/{reportId}": { + "get": { + "summary": "Get report", + "operationId": "advisorGetReport", + "tags": [ + "advisor" + ], + "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", + "responses": { + "200": { + "description": "Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/report" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "reports", + "demo": "advisor\/get-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "reports.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete report", + "operationId": "advisorDeleteReport", + "tags": [ + "advisor" + ], + "description": "Delete an analyzer report by its unique ID. Nested insights and CTA metadata are removed asynchronously by the deletes worker.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "reports", + "demo": "advisor\/delete-report.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{projectId},userId:{userId}", + "scope": "reports.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/reports\/{reportId}\/insights": { + "get": { + "summary": "List insights", + "operationId": "advisorListInsights", + "tags": [ + "advisor" + ], + "description": "List the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", + "responses": { + "200": { + "description": "Insights List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/insightList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "insights", + "demo": "advisor\/list-insights.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Parent report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/reports\/{reportId}\/insights\/{insightId}": { + "get": { + "summary": "Get insight", + "operationId": "advisorGetInsight", + "tags": [ + "advisor" + ], + "description": "Get an insight by its unique ID, scoped to its parent report.\n", + "responses": { + "200": { + "description": "Insight", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/insight" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "insights", + "demo": "advisor\/get-insight.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Parent report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + }, + { + "name": "insightId", + "description": "Insight ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSIGHT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites": { + "get": { + "summary": "List sites", + "operationId": "sitesList", + "tags": [ + "sites" + ], + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Sites List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/siteList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create site", + "operationId": "sitesCreate", + "tags": [ + "sites" + ], + "description": "Create a new site.", + "responses": { + "201": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "siteId": { + "description": "Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<SITE_ID>" + }, + "name": { + "description": "Site name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "framework": { + "description": "Sites framework.", + "type": "string", + "example": "analog", + "title": "Framework", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "enabled": { + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "timeout": { + "description": "Maximum request time in seconds.", + "type": "integer", + "default": 30, + "example": 1, + "format": "int32" + }, + "installCommand": { + "description": "Install Command.", + "type": "string", + "default": "", + "example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "description": "Build Command.", + "type": "string", + "default": "", + "example": "<BUILD_COMMAND>" + }, + "startCommand": { + "description": "Custom start command. Leave empty to use default.", + "type": "string", + "default": "", + "example": "<START_COMMAND>" + }, + "outputDirectory": { + "description": "Output Directory for site.", + "type": "string", + "default": "", + "example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "description": "Runtime to use during build step.", + "type": "string", + "example": "node-14.5", + "title": "BuildRuntime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "adapter": { + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "type": "string", + "example": "static", + "title": "Adapter", + "oneOf": [ + { + "type": "string", + "enum": [ + "static" + ], + "title": "static" + }, + { + "type": "string", + "enum": [ + "ssr" + ], + "title": "ssr" + } + ] + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "description": "Fallback file for single page application sites.", + "type": "string", + "default": "", + "example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to site code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the site deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the SSR executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + } + }, + "required": [ + "siteId", + "name", + "framework", + "buildRuntime" + ] + } + } + } + } + } + }, + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", + "tags": [ + "sites" + ], + "description": "Get a list of all frameworks that are currently available on the server instance.", + "responses": { + "200": { + "description": "Frameworks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/frameworkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "frameworks", + "demo": "sites\/list-frameworks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "tags": [ + "sites" + ], + "description": "List allowed site specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "frameworks", + "demo": "sites\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/templates": { + "get": { + "summary": "List templates", + "operationId": "sitesListTemplates", + "tags": [ + "sites" + ], + "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "responses": { + "200": { + "description": "Site Templates List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateSiteList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "sites\/list-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "frameworks", + "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "Framework", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "useCases", + "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "SiteTemplateUseCase", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "portfolio" + ], + "title": "portfolio" + }, + { + "type": "string", + "enum": [ + "starter" + ], + "title": "starter" + }, + { + "type": "string", + "enum": [ + "events" + ], + "title": "events" + }, + { + "type": "string", + "enum": [ + "ecommerce" + ], + "title": "ecommerce" + }, + { + "type": "string", + "enum": [ + "documentation" + ], + "title": "documentation" + }, + { + "type": "string", + "enum": [ + "blog" + ], + "title": "blog" + }, + { + "type": "string", + "enum": [ + "ai" + ], + "title": "ai" + }, + { + "type": "string", + "enum": [ + "forms" + ], + "title": "forms" + }, + { + "type": "string", + "enum": [ + "dashboard" + ], + "title": "dashboard" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "limit", + "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/templates\/{templateId}": { + "get": { + "summary": "Get site template", + "operationId": "sitesGetTemplate", + "tags": [ + "sites" + ], + "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "responses": { + "200": { + "description": "Template Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateSite" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "sites\/get-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Template ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEMPLATE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", + "tags": [ + "sites" + ], + "description": "Get a site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", + "tags": [ + "sites" + ], + "description": "Update site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Site name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "framework": { + "description": "Sites framework.", + "type": "string", + "example": "analog", + "title": "Framework", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "enabled": { + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "timeout": { + "description": "Maximum request time in seconds.", + "type": "integer", + "default": 30, + "example": 1, + "format": "int32" + }, + "installCommand": { + "description": "Install Command.", + "type": "string", + "default": "", + "example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "description": "Build Command.", + "type": "string", + "default": "", + "example": "<BUILD_COMMAND>" + }, + "startCommand": { + "description": "Custom start command. Leave empty to use default.", + "type": "string", + "default": "", + "example": "<START_COMMAND>" + }, + "outputDirectory": { + "description": "Output Directory for site.", + "type": "string", + "default": "", + "example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "description": "Runtime to use during build step.", + "type": "string", + "example": "node-14.5", + "title": "BuildRuntime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "adapter": { + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "type": "string", + "example": "static", + "title": "Adapter", + "oneOf": [ + { + "type": "string", + "enum": [ + "static" + ], + "title": "static" + }, + { + "type": "string", + "enum": [ + "ssr" + ], + "title": "ssr" + } + ] + }, + "fallbackFile": { + "description": "Fallback file for single page application sites.", + "type": "string", + "default": "", + "example": "<FALLBACK_FILE>" + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to site code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the site deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the SSR executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + }, + "nullable": true + } + }, + "required": [ + "name", + "framework" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete site", + "operationId": "sitesDelete", + "tags": [ + "sites" + ], + "description": "Delete a site by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", + "tags": [ + "sites" + ], + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/update-site-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "sitesListDeployments", + "tags": [ + "sites" + ], + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", + "tags": [ + "sites" + ], + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "installCommand": { + "description": "Install Commands.", + "type": "string", + "example": "<INSTALL_COMMAND>", + "nullable": true + }, + "buildCommand": { + "description": "Build Commands.", + "type": "string", + "example": "<BUILD_COMMAND>", + "nullable": true + }, + "outputDirectory": { + "description": "Output Directory.", + "type": "string", + "example": "<OUTPUT_DIRECTORY>", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "code" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", + "tags": [ + "sites" + ], + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", + "tags": [ + "sites" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "<REPOSITORY>" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "<OWNER>" + }, + "rootDirectory": { + "description": "Path to site code in the template repo.", + "type": "string", + "example": "<ROOT_DIRECTORY>" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "branch", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", + "tags": [ + "sites" + ], + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", + "tags": [ + "sites" + ], + "description": "Get a site deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", + "tags": [ + "sites" + ], + "description": "Delete a site deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", + "tags": [ + "sites" + ], + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "sites.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", + "tags": [ + "sites" + ], + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/logs": { + "get": { + "summary": "List logs", + "operationId": "sitesListLogs", + "tags": [ + "sites" + ], + "description": "Get a list of all site logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "sites\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/logs\/{logId}": { + "get": { + "summary": "Get log", + "operationId": "sitesGetLog", + "tags": [ + "sites" + ], + "description": "Get a site request log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "sites\/get-log.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LOG_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete log", + "operationId": "sitesDeleteLog", + "tags": [ + "sites" + ], + "description": "Delete a site log by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "sites\/delete-log.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LOG_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "sitesListVariables", + "tags": [ + "sites" + ], + "description": "Get a list of all variables of a specific site.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "sitesCreateVariable", + "tags": [ + "sites" + ], + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "sitesGetVariable", + "tags": [ + "sites" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "sitesUpdateVariable", + "tags": [ + "sites" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", + "tags": [ + "sites" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets": { + "get": { + "summary": "List buckets", + "operationId": "storageListBuckets", + "tags": [ + "storage" + ], + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Buckets List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucketList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/list-buckets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", + "tags": [ + "storage" + ], + "description": "Create a new storage bucket.", + "responses": { + "201": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/create-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<BUCKET_ID>" + }, + "name": { + "description": "Bucket name", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "fileSecurity": { + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "maximumFileSize": { + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "type": "integer", + "default": {}, + "example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "compression": { + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "type": "string", + "default": "none", + "example": "none", + "title": "Compression", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "gzip" + ], + "title": "gzip" + }, + { + "type": "string", + "enum": [ + "zstd" + ], + "title": "zstd" + } + ] + }, + "encryption": { + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "antivirus": { + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "transformations": { + "description": "Are image transformations enabled?", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "bucketId", + "name" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}": { + "get": { + "summary": "Get bucket", + "operationId": "storageGetBucket", + "tags": [ + "storage" + ], + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/get-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", + "tags": [ + "storage" + ], + "description": "Update a storage bucket by its unique ID.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/update-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Bucket name", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "fileSecurity": { + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "maximumFileSize": { + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "type": "integer", + "default": {}, + "example": 1, + "format": "int32", + "nullable": true + }, + "allowedFileExtensions": { + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "compression": { + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "type": "string", + "default": "none", + "example": "none", + "title": "Compression", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "gzip" + ], + "title": "gzip" + }, + { + "type": "string", + "enum": [ + "zstd" + ], + "title": "zstd" + } + ], + "nullable": true + }, + "encryption": { + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false, + "nullable": true + }, + "antivirus": { + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "transformations": { + "description": "Are image transformations enabled?", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete bucket", + "operationId": "storageDeleteBucket", + "tags": [ + "storage" + ], + "description": "Delete a storage bucket by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/delete-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "tags": [ + "storage" + ], + "description": "Get a list of all the user files. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Files List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/fileList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/list-files.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "fileId": { + "description": "File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<FILE_ID>" + }, + "file": { + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "type": "string", + "format": "binary" + }, + "permissions": { + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "folder": { + "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", + "type": "string", + "default": "", + "example": "photos\/2026" + } + }, + "required": [ + "fileId", + "file" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "File name.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", + "tags": [ + "storage" + ], + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "tags": [ + "storage" + ], + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "example": "auto", + "title": "ImageGravity", + "oneOf": [ + { + "type": "string", + "enum": [ + "auto" + ], + "title": "auto" + }, + { + "type": "string", + "enum": [ + "center" + ], + "title": "center" + }, + { + "type": "string", + "enum": [ + "top-left" + ], + "title": "top-left" + }, + { + "type": "string", + "enum": [ + "top" + ], + "title": "top" + }, + { + "type": "string", + "enum": [ + "top-right" + ], + "title": "top-right" + }, + { + "type": "string", + "enum": [ + "left" + ], + "title": "left" + }, + { + "type": "string", + "enum": [ + "right" + ], + "title": "right" + }, + { + "type": "string", + "enum": [ + "bottom-left" + ], + "title": "bottom-left" + }, + { + "type": "string", + "enum": [ + "bottom" + ], + "title": "bottom" + }, + { + "type": "string", + "enum": [ + "bottom-right" + ], + "title": "bottom-right" + } + ], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -360, + "default": 0 + }, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb": { + "get": { + "summary": "List databases", + "operationId": "tablesDBList", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "tablesDBCreate", + "tags": [ + "tablesDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/tablesdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "tablesDBListSpecifications", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", + "tags": [ + "tablesDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "tags": [ + "tablesDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", + "tags": [ + "tablesDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createRow": { + "summary": "Stage a row creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "tablesDBGet", + "tags": [ + "tablesDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", + "tags": [ + "tablesDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", + "tags": [ + "tablesDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "tablesDBCreateFailover", + "tags": [ + "tablesDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "tablesdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/migrations": { + "get": { + "summary": "List migrations", + "operationId": "tablesDBListMigrations", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated migrations for a TablesDB database. A database has at most one in-flight migration.", + "responses": { + "200": { + "description": "Database Migrations List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigrationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/list-migrations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create migration", + "operationId": "tablesDBCreateMigration", + "tags": [ + "tablesDB" + ], + "description": "Start migrating a serverless TablesDB database onto a dedicated MySQL compute. Data is copied to the target while the source stays live, with a brief read-only window during cutover.", + "responses": { + "201": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "specification": { + "description": "Dedicated compute specification to provision as the migration target (e.g. s-2vcpu-4gb). The migration always targets a dedicated compute, so `serverless` is not accepted.", + "type": "string", + "example": "s-1vcpu-1gb" + }, + "autoCutover": { + "description": "Whether to cut over automatically once the copy is verified. When disabled the migration parks at ready_to_cutover and holds there until the cutover is performed manually.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "specification" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "tablesDBGetMigration", + "tags": [ + "tablesDB" + ], + "description": "Get a single dedicated migration for a TablesDB database by its ID.", + "responses": { + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/get-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete migration", + "operationId": "tablesDBDeleteMigration", + "tags": [ + "tablesDB" + ], + "description": "Abort an in-flight TablesDB dedicated migration. Only allowed before cutover; once the migration has cut over it cannot be aborted.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/delete-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}\/cutovers": { + "post": { + "summary": "Cutover migration", + "operationId": "tablesDBCreateCutover", + "tags": [ + "tablesDB" + ], + "description": "Cut a verified TablesDB migration over to its dedicated compute. Only applies to a migration created with `autoCutover` disabled, which waits at `ready_to_cutover` until this is called. The routing flip happens shortly after this returns, with a brief read-only window. One call buys one attempt: a cutover that fails a check returns the migration to `verifying` and parks it again, so call this once more to retry.", + "responses": { + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/create-cutover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "tablesDBListOperations", + "tags": [ + "tablesDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "tablesdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "tablesDBGetReplicas", + "tags": [ + "tablesDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "tablesdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "tablesDBGetStatus", + "tags": [ + "tablesDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables": { + "get": { + "summary": "List tables", + "operationId": "tablesDBListTables", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Tables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/tableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/list-tables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name, enabled, rowSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create table", + "operationId": "tablesDBCreateTable", + "tags": [ + "tablesDB" + ], + "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/create-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "tableId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TABLE_ID>" + }, + "name": { + "description": "Table name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rowSecurity": { + "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "columns": { + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "tableId", + "name" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { + "get": { + "summary": "Get table", + "operationId": "tablesDBGetTable", + "tags": [ + "tablesDB" + ], + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "responses": { + "200": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/get-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", + "tags": [ + "tablesDB" + ], + "description": "Update a table by its unique ID.", + "responses": { + "200": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/update-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Table name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rowSecurity": { + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", + "tags": [ + "tablesDB" + ], + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/delete-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { + "get": { + "summary": "List columns", + "operationId": "tablesDBListColumns", + "tags": [ + "tablesDB" + ], + "description": "List columns in the table.", + "responses": { + "200": { + "description": "Columns List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/list-columns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, size, required, array, status, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint": { + "post": { + "summary": "Create bigint column", + "operationId": "tablesDBCreateBigIntColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a bigint column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBigint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-big-int-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { + "patch": { + "summary": "Update bigint column", + "operationId": "tablesDBUpdateBigIntColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBigint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-big-int-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a boolean column.\n", + "responses": { + "202": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-boolean-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-boolean-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a date time column according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-datetime-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update datetime column", + "operationId": "tablesDBUpdateDatetimeColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-datetime-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "post": { + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an email column.\n", + "responses": { + "202": { + "description": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-email-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-email-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "responses": { + "202": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-enum-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-enum-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "post": { + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnFloat" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-float-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "patch": { + "summary": "Update float column", + "operationId": "tablesDBUpdateFloatColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnFloat" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-float-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-integer-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-integer-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "post": { + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", + "tags": [ + "tablesDB" + ], + "description": "Create IP address column.\n", + "responses": { + "202": { + "description": "ColumnIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIp" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-ip-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIp" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-ip-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { + "post": { + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric line column.", + "responses": { + "202": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-line-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when column is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-line-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when column is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a longtext column.\n", + "responses": { + "202": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-longtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-longtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { + "post": { + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a mediumtext column.\n", + "responses": { + "202": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-mediumtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-mediumtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { + "post": { + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric point column.", + "responses": { + "202": { + "description": "ColumnPoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPoint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-point-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPoint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-point-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric polygon column.", + "responses": { + "202": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-polygon-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when column is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-polygon-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when column is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", + "tags": [ + "tablesDB" + ], + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "responses": { + "202": { + "description": "ColumnRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnRelationship" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-relationship-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedTableId": { + "description": "Related Table ID.", + "type": "string", + "example": "<RELATED_TABLE_ID>" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Column Key.", + "type": "string", + "example": "<TWO_WAY_KEY>", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedTableId", + "type" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship\/{key}": { + "patch": { + "summary": "Update relationship column", + "operationId": "tablesDBUpdateRelationshipColumn", + "tags": [ + "tablesDB" + ], + "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "responses": { + "200": { + "description": "ColumnRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnRelationship" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-relationship-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ], + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { + "post": { + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a string column.\n", + "responses": { + "202": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-string-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Column size for text columns, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { + "patch": { + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-string-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string column.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + "post": { + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a text column.\n", + "responses": { + "202": { + "description": "ColumnText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnText" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-text-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { + "patch": { + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnText" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-text-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { + "post": { + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a URL column.\n", + "responses": { + "202": { + "description": "ColumnURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnUrl" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-url-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { + "patch": { + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnUrl" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-url-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { + "post": { + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a varchar column.\n", + "responses": { + "202": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-varchar-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { + "patch": { + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-varchar-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar column.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "get": { + "summary": "Get column", + "operationId": "tablesDBGetColumn", + "tags": [ + "tablesDB" + ], + "description": "Get column by ID.", + "responses": { + "200": { + "description": "ColumnBoolean, or ColumnBigInt, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnPoint, or ColumnLine, or ColumnPolygon, or ColumnVarchar, or ColumnText, or ColumnMediumtext, or ColumnLongtext, or ColumnString", + "content": { + "application\/json": { + "schema": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/get-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", + "tags": [ + "tablesDB" + ], + "description": "Deletes a column.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/delete-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", + "tags": [ + "tablesDB" + ], + "description": "List indexes on the table.", + "responses": { + "200": { + "description": "Column Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "tablesDBCreateIndex", + "tags": [ + "tablesDB" + ], + "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "indexes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "TablesDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "columns": { + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "columns" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", + "tags": [ + "tablesDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", + "tags": [ + "tablesDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "indexes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/list-rows.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, table, schema version (columns and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; row writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", + "tags": [ + "tablesDB" + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create row", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + }, + { + "name": "createRows", + "namespace": "tablesDB", + "platforms": [ + "console", + "server" + ], + "summary": "Create rows", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-rows.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rowId": { + "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<ROW_ID>" + }, + "data": { + "description": "Row data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rows": { + "description": "Array of rows data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rowId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", + "tags": [ + "tablesDB" + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/upsert-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertRows", + "namespace": "tablesDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "demo": "tablesdb\/upsert-rows.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rows": { + "description": "Array of row data as JSON objects. May contain partial rows.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rows" + ] + } + } + } + } + }, + "patch": { + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", + "tags": [ + "tablesDB" + ], + "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/update-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only column and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected rows", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", + "tags": [ + "tablesDB" + ], + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/delete-rows.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "tags": [ + "tablesDB" + ], + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/get-row.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", + "tags": [ + "tablesDB" + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update row data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", + "tags": [ + "tablesDB" + ], + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update row data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", + "tags": [ + "tablesDB" + ], + "description": "Delete a row by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { + "patch": { + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "tags": [ + "teams" + ], + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "responses": { + "200": { + "description": "Teams List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/teamList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", + "tags": [ + "teams" + ], + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "responses": { + "201": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TEAM_ID>" + }, + "name": { + "description": "Team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "roles": { + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "default": [ + "owner" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "teamId", + "name" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", + "tags": [ + "teams" + ], + "description": "Get a team by its ID. All team members have read access for this resource.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", + "tags": [ + "teams" + ], + "description": "Update the team's name by its unique ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "teamsListInstallations", + "tags": [ + "teams" + ], + "description": "List app installations on a team. Any team member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "teamsCreateInstallation", + "tags": [ + "teams" + ], + "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "teamsGetInstallation", + "tags": [ + "teams" + ], + "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "teamsUpdateInstallation", + "tags": [ + "teams" + ], + "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "teamsDeleteInstallation", + "tags": [ + "teams" + ], + "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", + "tags": [ + "teams" + ], + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", + "tags": [ + "teams" + ], + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new team member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to a team.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + }, + "url": { + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new team member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "tags": [ + "teams" + ], + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", + "tags": [ + "teams" + ], + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "roles" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", + "tags": [ + "teams" + ], + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", + "tags": [ + "teams" + ], + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret key.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "tags": [ + "teams" + ], + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "tokens\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "tags": [ + "tokens" + ], + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "responses": { + "201": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "tokens\/create-file-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "description": "Token expiry date", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tokens\/{tokenId}": { + "get": { + "summary": "Get token", + "operationId": "tokensGet", + "tags": [ + "tokens" + ], + "description": "Get a token by its unique ID.", + "responses": { + "200": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "tokens\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update token", + "operationId": "tokensUpdate", + "tags": [ + "tokens" + ], + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", + "responses": { + "200": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "tokens\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "description": "File token expiry date", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete token", + "operationId": "tokensDelete", + "tags": [ + "tokens" + ], + "description": "Delete a token by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "tokens\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/usage\/events": { + "get": { + "summary": "List usage events", + "operationId": "usageListEvents", + "tags": [ + "usage" + ], + "description": "Aggregate usage event metrics. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 one point per dimension combination, no time axis. Useful for \"top 10 paths by bandwidth in the last 7 days\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one point per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down by one or more attributes (service, path, status, country, \u2026). `queries[]` filters the underlying events using the standard Utopia query syntax \u2014 `equal(\"path\", [\"\/v1\/storage\/files\"])`, `equal(\"resourceType\", [\"bucket\"])`, `equal(\"resourceId\", [\"abc123\"])`, `startsWith(\"path\", [\"\/v1\/storage\"])`, `equal(\"status\", [\"200\", \"201\"])`, `isNotNull(\"resourceId\")`. Supported attributes: see `queries[]` param. Supported methods: `equal`, `notEqual`, `contains`, `startsWith`, `endsWith`, `isNull`, `isNotNull`. Pass multiple metrics to render stacked charts in one round-trip. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N by aggregated value. When `startAt` is omitted, the default window adapts to `interval` (or 7d when interval is omitted).", + "responses": { + "200": { + "description": "usageEventList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageEventList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "usage\/list-events.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{project.$id}", + "scope": [ + "usage.read", + "account" + ], + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "metrics", + "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=executions` or `metrics[]=executions&metrics[]=executions.compute` for stacked charts. On console: `metrics[]=affiliates.clicks`.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "anyOf": [ + { + "title": "UsageEventMetric", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "analytics.events" + ], + "title": "analytics.events" + }, + { + "type": "string", + "enum": [ + "analytics.pageviews" + ], + "title": "analytics.pageviews" + }, + { + "type": "string", + "enum": [ + "analytics.bots.events" + ], + "title": "analytics.bots.events" + }, + { + "type": "string", + "enum": [ + "network.requests" + ], + "title": "network.requests" + }, + { + "type": "string", + "enum": [ + "network.inbound" + ], + "title": "network.inbound" + }, + { + "type": "string", + "enum": [ + "network.outbound" + ], + "title": "network.outbound" + }, + { + "type": "string", + "enum": [ + "webhooks.events.sent" + ], + "title": "webhooks.events.sent" + }, + { + "type": "string", + "enum": [ + "webhooks.events.failed" + ], + "title": "webhooks.events.failed" + }, + { + "type": "string", + "enum": [ + "auth.method.phone" + ], + "title": "auth.method.phone" + }, + { + "type": "string", + "enum": [ + "messages.sent" + ], + "title": "messages.sent" + }, + { + "type": "string", + "enum": [ + "messages.failed" + ], + "title": "messages.failed" + }, + { + "type": "string", + "enum": [ + "messages.sms.sent" + ], + "title": "messages.sms.sent" + }, + { + "type": "string", + "enum": [ + "executions" + ], + "title": "executions" + }, + { + "type": "string", + "enum": [ + "executions.compute" + ], + "title": "executions.compute" + }, + { + "type": "string", + "enum": [ + "executions.mbSeconds" + ], + "title": "executions.mbSeconds" + }, + { + "type": "string", + "enum": [ + "functions.executions" + ], + "title": "functions.executions" + }, + { + "type": "string", + "enum": [ + "sites.executions" + ], + "title": "sites.executions" + }, + { + "type": "string", + "enum": [ + "functions.executions.compute" + ], + "title": "functions.executions.compute" + }, + { + "type": "string", + "enum": [ + "sites.executions.compute" + ], + "title": "sites.executions.compute" + }, + { + "type": "string", + "enum": [ + "functions.executions.mbSeconds" + ], + "title": "functions.executions.mbSeconds" + }, + { + "type": "string", + "enum": [ + "sites.executions.mbSeconds" + ], + "title": "sites.executions.mbSeconds" + }, + { + "type": "string", + "enum": [ + "builds" + ], + "title": "builds" + }, + { + "type": "string", + "enum": [ + "builds.success" + ], + "title": "builds.success" + }, + { + "type": "string", + "enum": [ + "builds.failed" + ], + "title": "builds.failed" + }, + { + "type": "string", + "enum": [ + "builds.compute" + ], + "title": "builds.compute" + }, + { + "type": "string", + "enum": [ + "builds.compute.success" + ], + "title": "builds.compute.success" + }, + { + "type": "string", + "enum": [ + "builds.compute.failed" + ], + "title": "builds.compute.failed" + }, + { + "type": "string", + "enum": [ + "builds.mbSeconds" + ], + "title": "builds.mbSeconds" + }, + { + "type": "string", + "enum": [ + "functions.builds.mbSeconds" + ], + "title": "functions.builds.mbSeconds" + }, + { + "type": "string", + "enum": [ + "sites.builds.mbSeconds" + ], + "title": "sites.builds.mbSeconds" + }, + { + "type": "string", + "enum": [ + "databases.operations.reads" + ], + "title": "databases.operations.reads" + }, + { + "type": "string", + "enum": [ + "databases.operations.writes" + ], + "title": "databases.operations.writes" + }, + { + "type": "string", + "enum": [ + "documentsdb.databases.operations.reads" + ], + "title": "documentsdb.databases.operations.reads" + }, + { + "type": "string", + "enum": [ + "documentsdb.databases.operations.writes" + ], + "title": "documentsdb.databases.operations.writes" + }, + { + "type": "string", + "enum": [ + "vectorsdb.databases.operations.reads" + ], + "title": "vectorsdb.databases.operations.reads" + }, + { + "type": "string", + "enum": [ + "vectorsdb.databases.operations.writes" + ], + "title": "vectorsdb.databases.operations.writes" + }, + { + "type": "string", + "enum": [ + "files.imagesTransformed" + ], + "title": "files.imagesTransformed" + }, + { + "type": "string", + "enum": [ + "avatars.screenshotsGenerated" + ], + "title": "avatars.screenshotsGenerated" + }, + { + "type": "string", + "enum": [ + "realtime.messages.sent" + ], + "title": "realtime.messages.sent" + }, + { + "type": "string", + "enum": [ + "realtime.inbound" + ], + "title": "realtime.inbound" + }, + { + "type": "string", + "enum": [ + "realtime.outbound" + ], + "title": "realtime.outbound" + }, + { + "type": "string", + "enum": [ + "embeddings.text" + ], + "title": "embeddings.text" + }, + { + "type": "string", + "enum": [ + "embeddings.text.totalTokens" + ], + "title": "embeddings.text.totalTokens" + }, + { + "type": "string", + "enum": [ + "embeddings.text.totalDuration" + ], + "title": "embeddings.text.totalDuration" + }, + { + "type": "string", + "enum": [ + "embeddings.text.totalErrors" + ], + "title": "embeddings.text.totalErrors" + }, + { + "type": "string", + "enum": [ + "waf.requests.denied" + ], + "title": "waf.requests.denied" + }, + { + "type": "string", + "enum": [ + "waf.requests.challenged" + ], + "title": "waf.requests.challenged" + }, + { + "type": "string", + "enum": [ + "waf.requests.rateLimited" + ], + "title": "waf.requests.rateLimited" + }, + { + "type": "string", + "enum": [ + "waf.requests.redirected" + ], + "title": "waf.requests.redirected" + }, + { + "type": "string", + "enum": [ + "waf.requests.challengeSolved" + ], + "title": "waf.requests.challengeSolved" + }, + { + "type": "string", + "enum": [ + "waf.challenge.solveTimeMs" + ], + "title": "waf.challenge.solveTimeMs" + }, + { + "type": "string", + "enum": [ + "affiliates.clicks" + ], + "title": "affiliates.clicks" + }, + { + "type": "string", + "enum": [ + "affiliates.signups" + ], + "title": "affiliates.signups" + }, + { + "type": "string", + "enum": [ + "affiliates.conversions" + ], + "title": "affiliates.conversions" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.inbound" + ], + "title": "dedicatedDatabases.inbound" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.outbound" + ], + "title": "dedicatedDatabases.outbound" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.compute" + ], + "title": "dedicatedDatabases.compute" + } + ] + }, + { + "type": "string" + } + ] + } + }, + "in": "query" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes, also published as the `UsageEventDimension` enum: path, method, status, service, resourceType, resourceId, teamId, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, protocol, queryKeys, accept, acceptLanguage, postalCode, latitude, longitude, timeZone, weatherCode, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization. Allowed methods: equal, notEqual, contains, startsWith, endsWith, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time interval size. Omit (null) for a flat aggregate over the whole window. Allowed: 1m, 15m, 30m, 1h, 1d.", + "required": false, + "schema": { + "type": "string", + "example": "1m", + "title": "UsageInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Minute" + }, + { + "type": "string", + "enum": [ + "15m" + ], + "title": "Fifteen Minutes" + }, + { + "type": "string", + "enum": [ + "30m" + ], + "title": "Thirty Minutes" + }, + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Break-down dimensions (max 10). Allowed: path, method, status, service, resourceType, country, continentCode, city, region, hostname, ip, osName, clientType, clientName, deviceName, sdk, sdkVersion, teamId, resourceId, protocol, queryKeys, accept, acceptLanguage, postalCode, latitude, longitude, timeZone, weatherCode, isp, autonomousSystemNumber, autonomousSystemOrganization, connectionType, connectionUsageType, connectionOrganization.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "UsageEventDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "path" + ], + "title": "path" + }, + { + "type": "string", + "enum": [ + "method" + ], + "title": "method" + }, + { + "type": "string", + "enum": [ + "status" + ], + "title": "status" + }, + { + "type": "string", + "enum": [ + "service" + ], + "title": "service" + }, + { + "type": "string", + "enum": [ + "resourceType" + ], + "title": "resourceType" + }, + { + "type": "string", + "enum": [ + "country" + ], + "title": "country" + }, + { + "type": "string", + "enum": [ + "continentCode" + ], + "title": "continentCode" + }, + { + "type": "string", + "enum": [ + "city" + ], + "title": "city" + }, + { + "type": "string", + "enum": [ + "region" + ], + "title": "region" + }, + { + "type": "string", + "enum": [ + "hostname" + ], + "title": "hostname" + }, + { + "type": "string", + "enum": [ + "ip" + ], + "title": "ip" + }, + { + "type": "string", + "enum": [ + "osName" + ], + "title": "osName" + }, + { + "type": "string", + "enum": [ + "clientType" + ], + "title": "clientType" + }, + { + "type": "string", + "enum": [ + "clientName" + ], + "title": "clientName" + }, + { + "type": "string", + "enum": [ + "deviceName" + ], + "title": "deviceName" + }, + { + "type": "string", + "enum": [ + "sdk" + ], + "title": "sdk" + }, + { + "type": "string", + "enum": [ + "sdkVersion" + ], + "title": "sdkVersion" + }, + { + "type": "string", + "enum": [ + "teamId" + ], + "title": "teamId" + }, + { + "type": "string", + "enum": [ + "resourceId" + ], + "title": "resourceId" + }, + { + "type": "string", + "enum": [ + "protocol" + ], + "title": "protocol" + }, + { + "type": "string", + "enum": [ + "queryKeys" + ], + "title": "queryKeys" + }, + { + "type": "string", + "enum": [ + "accept" + ], + "title": "accept" + }, + { + "type": "string", + "enum": [ + "acceptLanguage" + ], + "title": "acceptLanguage" + }, + { + "type": "string", + "enum": [ + "postalCode" + ], + "title": "postalCode" + }, + { + "type": "string", + "enum": [ + "latitude" + ], + "title": "latitude" + }, + { + "type": "string", + "enum": [ + "longitude" + ], + "title": "longitude" + }, + { + "type": "string", + "enum": [ + "timeZone" + ], + "title": "timeZone" + }, + { + "type": "string", + "enum": [ + "weatherCode" + ], + "title": "weatherCode" + }, + { + "type": "string", + "enum": [ + "isp" + ], + "title": "isp" + }, + { + "type": "string", + "enum": [ + "autonomousSystemNumber" + ], + "title": "autonomousSystemNumber" + }, + { + "type": "string", + "enum": [ + "autonomousSystemOrganization" + ], + "title": "autonomousSystemOrganization" + }, + { + "type": "string", + "enum": [ + "connectionType" + ], + "title": "connectionType" + }, + { + "type": "string", + "enum": [ + "connectionUsageType" + ], + "title": "connectionUsageType" + }, + { + "type": "string", + "enum": [ + "connectionOrganization" + ], + "title": "connectionOrganization" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Range start in ISO 8601. Defaults adapt to interval (7d for the no-interval aggregate).", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Range end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "orderBy", + "description": "Column to order by. Allowed: time, value. Default time when an interval is set; otherwise value.", + "required": false, + "schema": { + "type": "string", + "example": "time", + "title": "UsageOrderBy", + "oneOf": [ + { + "type": "string", + "enum": [ + "time" + ], + "title": "time" + }, + { + "type": "string", + "enum": [ + "value" + ], + "title": "value" + } + ], + "default": "time" + }, + "in": "query" + }, + { + "name": "orderDir", + "description": "Sort direction: asc or desc. Default desc \u2014 paired with the default limit, returns the most recent \/ highest-value groups first.", + "required": false, + "schema": { + "type": "string", + "example": "asc", + "title": "UsageOrderDirection", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ], + "default": "desc" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum rows to return (1-5000).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 500 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Pagination offset (0-100000).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/usage\/gauges": { + "get": { + "summary": "List usage gauges", + "operationId": "usageListGauges", + "tags": [ + "usage" + ], + "description": "Aggregate usage gauge snapshots. Gauges are point-in-time values (storage totals, resource counts, \u2026); each point carries the latest snapshot in its interval via `argMax(value, time)`. `metrics[]` (1-10) is required; the response always contains one entry per requested metric, each with its own `points[]` time series.\n\nA metric with no stored samples in the window returns an empty `points[]`. A metric that really did read zero returns a point whose `value` is `0`, so \"no such series\" and \"a genuine zero\" are different answers.\n\n**Two response shapes**:\n- Omit `interval` for a flat top-N table \u2014 `argMax(value, time)` per dimension combination over the whole window, no time axis. Useful for \"top 10 resources by current storage\".\n- Pass `interval` (`1m`, `15m`, `30m`, `1h`, `1d`) for a time series \u2014 one snapshot per (time bucket \u00d7 dimension combination).\n\n`dimensions[]` breaks each point down further. Supported on gauges: `resourceId`, `teamId`, `service`, `resourceType`, `ordinal`. `service` and `resourceType` enable per-service \/ per-resource-type panels (e.g. storage-by-service: group `files.storage`, `deployments.storage`, `builds.storage`, `databases.storage` by `service`). `ordinal` separates per-node series for multi-node resources such as dedicated databases. It is a stable per-node identity, not a role \u2014 ordinal 0 is the first member created, and a failover can leave the primary on any ordinal, so read the role from the database's replicas endpoint rather than inferring it here. `queries[]` filters the underlying rows using the standard Utopia query syntax \u2014 `equal(\"resourceType\", [\"bucket\"])`, `equal(\"resourceId\", [\"abc123\"])`, `equal(\"teamId\", [\"team_x\"])`, `equal(\"ordinal\", [\"0\"])`, `isNotNull(\"teamId\")`. Supported attributes: see `queries[]` param. Supported methods: `equal`, `notEqual`, `isNull`, `isNotNull`. Pass multiple metrics to render stacked charts in one round-trip. `orderBy=value`+`orderDir=desc`+`limit=N` returns the top-N. When `startAt` is omitted, the default window adapts to interval (or 7d when interval is omitted).\n\n`aggregate` selects how the samples in a bucket are combined: `last` (default) is the latest reading \u2014 correct for a snapshot such as storage \u2014 while `max` is the highest reading. Use `max` for a sampled level series: peak concurrent realtime connections is `metrics[]=realtime.connections&aggregate=max`, at whatever `interval` the chart needs, since the peak of a set of samples is just the max of their per-bucket maxima. `realtime.connections` is served only here - it is a concurrency level, not a countable event, so `\/v1\/usage\/events` rejects it.", + "responses": { + "200": { + "description": "usageGaugeList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageGaugeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "gauges", + "demo": "usage\/list-gauges.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{project.$id}", + "scope": "usage.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "metrics", + "description": "One to ten metric names. Single-metric callers pass a one-element array. Example: `metrics[]=files.storage` or `metrics[]=files.storage&metrics[]=deployments.storage` for stacked charts.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "anyOf": [ + { + "title": "UsageGaugeMetric", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "analytics.properties" + ], + "title": "analytics.properties" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "messages" + ], + "title": "messages" + }, + { + "type": "string", + "enum": [ + "sessions" + ], + "title": "sessions" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "collections" + ], + "title": "collections" + }, + { + "type": "string", + "enum": [ + "documents" + ], + "title": "documents" + }, + { + "type": "string", + "enum": [ + "databases.storage" + ], + "title": "databases.storage" + }, + { + "type": "string", + "enum": [ + "documentsdb.databases" + ], + "title": "documentsdb.databases" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections" + ], + "title": "documentsdb.collections" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents" + ], + "title": "documentsdb.documents" + }, + { + "type": "string", + "enum": [ + "documentsdb.databases.storage" + ], + "title": "documentsdb.databases.storage" + }, + { + "type": "string", + "enum": [ + "vectorsdb.databases" + ], + "title": "vectorsdb.databases" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections" + ], + "title": "vectorsdb.collections" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents" + ], + "title": "vectorsdb.documents" + }, + { + "type": "string", + "enum": [ + "vectorsdb.databases.storage" + ], + "title": "vectorsdb.databases.storage" + }, + { + "type": "string", + "enum": [ + "buckets" + ], + "title": "buckets" + }, + { + "type": "string", + "enum": [ + "files" + ], + "title": "files" + }, + { + "type": "string", + "enum": [ + "files.storage" + ], + "title": "files.storage" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "deployments" + ], + "title": "deployments" + }, + { + "type": "string", + "enum": [ + "deployments.storage" + ], + "title": "deployments.storage" + }, + { + "type": "string", + "enum": [ + "builds" + ], + "title": "builds" + }, + { + "type": "string", + "enum": [ + "builds.storage" + ], + "title": "builds.storage" + }, + { + "type": "string", + "enum": [ + "users.mau" + ], + "title": "users.mau" + }, + { + "type": "string", + "enum": [ + "users.dau" + ], + "title": "users.dau" + }, + { + "type": "string", + "enum": [ + "users.wau" + ], + "title": "users.wau" + }, + { + "type": "string", + "enum": [ + "webhooks" + ], + "title": "webhooks" + }, + { + "type": "string", + "enum": [ + "platforms" + ], + "title": "platforms" + }, + { + "type": "string", + "enum": [ + "providers" + ], + "title": "providers" + }, + { + "type": "string", + "enum": [ + "topics" + ], + "title": "topics" + }, + { + "type": "string", + "enum": [ + "targets" + ], + "title": "targets" + }, + { + "type": "string", + "enum": [ + "keys" + ], + "title": "keys" + }, + { + "type": "string", + "enum": [ + "domains" + ], + "title": "domains" + }, + { + "type": "string", + "enum": [ + "realtime.connections" + ], + "title": "realtime.connections" + }, + { + "type": "string", + "enum": [ + "backups.policies" + ], + "title": "backups.policies" + }, + { + "type": "string", + "enum": [ + "backups.storage" + ], + "title": "backups.storage" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.storage" + ], + "title": "dedicatedDatabases.storage" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.connections" + ], + "title": "dedicatedDatabases.connections" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.cpu" + ], + "title": "dedicatedDatabases.cpu" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.memory" + ], + "title": "dedicatedDatabases.memory" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.qps" + ], + "title": "dedicatedDatabases.qps" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.iopsRead" + ], + "title": "dedicatedDatabases.iopsRead" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.iopsWrite" + ], + "title": "dedicatedDatabases.iopsWrite" + }, + { + "type": "string", + "enum": [ + "apps" + ], + "title": "apps" + }, + { + "type": "string", + "enum": [ + "apps.users" + ], + "title": "apps.users" + }, + { + "type": "string", + "enum": [ + "apps.installations" + ], + "title": "apps.installations" + } + ] + }, + { + "type": "string" + } + ] + } + }, + "in": "query" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes, also published as the `UsageGaugeDimension` enum: service, resourceType, resourceId, teamId, ordinal. Allowed methods: equal, notEqual, isNull, isNotNull. Example: `queries[]=equal(\"resourceType\", [\"bucket\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time interval size. Omit (null) for a flat aggregate over the whole window. Allowed: 1m, 15m, 30m, 1h, 1d.", + "required": false, + "schema": { + "type": "string", + "example": "1m", + "title": "UsageInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Minute" + }, + { + "type": "string", + "enum": [ + "15m" + ], + "title": "Fifteen Minutes" + }, + { + "type": "string", + "enum": [ + "30m" + ], + "title": "Thirty Minutes" + }, + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Break-down dimensions. Allowed: resourceId, teamId, service, resourceType, ordinal.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "UsageGaugeDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "resourceId" + ], + "title": "resourceId" + }, + { + "type": "string", + "enum": [ + "teamId" + ], + "title": "teamId" + }, + { + "type": "string", + "enum": [ + "service" + ], + "title": "service" + }, + { + "type": "string", + "enum": [ + "resourceType" + ], + "title": "resourceType" + }, + { + "type": "string", + "enum": [ + "ordinal" + ], + "title": "ordinal" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Range start in ISO 8601. Defaults to endAt - 7d.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Range end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "orderBy", + "description": "Column to order by. Allowed: time, value. Default time.", + "required": false, + "schema": { + "type": "string", + "example": "time", + "title": "UsageOrderBy", + "oneOf": [ + { + "type": "string", + "enum": [ + "time" + ], + "title": "time" + }, + { + "type": "string", + "enum": [ + "value" + ], + "title": "value" + } + ], + "default": "time" + }, + "in": "query" + }, + { + "name": "orderDir", + "description": "Sort direction: asc or desc. Default desc \u2014 paired with the default limit, this returns the most recent groups first. Pass asc for chronological charting.", + "required": false, + "schema": { + "type": "string", + "example": "asc", + "title": "UsageOrderDirection", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ], + "default": "desc" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum rows to return (1-5000).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 500 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Pagination offset (0-100000).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "aggregate", + "description": "How to combine the samples in each bucket. `last` (default) returns the latest reading \u2014 the right answer for a snapshot such as storage. `max` returns the highest reading, which is what a sampled level series needs: peak concurrent realtime connections is the max of `realtime.connections` over the window.", + "required": false, + "schema": { + "type": "string", + "example": "last", + "default": "last" + }, + "in": "query" + } + ] + } + }, + "\/users": { + "get": { + "summary": "List users", + "operationId": "usersList", + "tags": [ + "users" + ], + "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Users List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/userList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, passwordPwned, labels, impersonator, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user", + "operationId": "usersCreate", + "tags": [ + "users" + ], + "description": "Create a new user.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone", + "nullable": true + }, + "password": { + "description": "Plain text user password. Must be at least 8 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password", + "nullable": true + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } + } + } + } + } + }, + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-argon-2-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Argon2.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-bcrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Bcrypt.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/identities": { + "get": { + "summary": "List identities", + "operationId": "usersListIdentities", + "tags": [ + "users" + ], + "description": "Get identities for all users.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "users\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", + "tags": [ + "users" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "users\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-md-5-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using MD5.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-ph-pass-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using PHPass.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-scrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Scrypt.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordSalt": { + "description": "Optional salt used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "description": "Optional CPU cost used to hash password.", + "type": "integer", + "example": 8, + "format": "int32" + }, + "passwordMemory": { + "description": "Optional memory cost used to hash password.", + "type": "integer", + "example": 65536, + "format": "int32" + }, + "passwordParallel": { + "description": "Optional parallelization cost used to hash password.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "passwordLength": { + "description": "Optional hash length used to hash password.", + "type": "integer", + "example": 64, + "format": "int32" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] + } + } + } + } + } + }, + "\/users\/scrypt-modified": { + "post": { + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-scrypt-modified-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Scrypt Modified.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordSalt": { + "description": "Salt used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "description": "Salt separator used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "description": "Signer key used to hash password.", + "type": "string", + "example": "<PASSWORD_SIGNER_KEY>" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" + ] + } + } + } + } + } + }, + "\/users\/sha": { + "post": { + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-sha-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using SHA.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordVersion": { + "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", + "type": "string", + "example": "sha1", + "title": "PasswordHash", + "oneOf": [ + { + "type": "string", + "enum": [ + "sha1" + ], + "title": "sha1" + }, + { + "type": "string", + "enum": [ + "sha224" + ], + "title": "sha224" + }, + { + "type": "string", + "enum": [ + "sha256" + ], + "title": "sha256" + }, + { + "type": "string", + "enum": [ + "sha384" + ], + "title": "sha384" + }, + { + "type": "string", + "enum": [ + "sha512\/224" + ], + "title": "sha512\/224" + }, + { + "type": "string", + "enum": [ + "sha512\/256" + ], + "title": "sha512\/256" + }, + { + "type": "string", + "enum": [ + "sha512" + ], + "title": "sha512" + }, + { + "type": "string", + "enum": [ + "sha3-224" + ], + "title": "sha3-224" + }, + { + "type": "string", + "enum": [ + "sha3-256" + ], + "title": "sha3-256" + }, + { + "type": "string", + "enum": [ + "sha3-384" + ], + "title": "sha3-384" + }, + { + "type": "string", + "enum": [ + "sha3-512" + ], + "title": "sha3-512" + } + ] + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/usage": { + "get": { + "summary": "Get users usage stats", + "operationId": "usersGetUsage", + "tags": [ + "users" + ], + "description": "Get usage metrics and statistics for all users in the project. You can view the total number of users and sessions. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", + "responses": { + "200": { + "description": "UsageUsers", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageUsers" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "users\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "example": "24h", + "title": "UsageRange", + "oneOf": [ + { + "type": "string", + "enum": [ + "24h" + ], + "title": "24h" + }, + { + "type": "string", + "enum": [ + "30d" + ], + "title": "30d" + }, + { + "type": "string", + "enum": [ + "90d" + ], + "title": "90d" + } + ], + "default": "30d" + }, + "in": "query" + } + ] + } + }, + "\/users\/{userId}": { + "get": { + "summary": "Get user", + "operationId": "usersGet", + "tags": [ + "users" + ], + "description": "Get a user by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", + "tags": [ + "users" + ], + "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", + "tags": [ + "users" + ], + "description": "Update the user email by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + } + }, + "required": [ + "email" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/impersonator": { + "patch": { + "summary": "Update user impersonator capability", + "operationId": "usersUpdateImpersonator", + "tags": [ + "users" + ], + "description": "Enable or disable whether a user can impersonate other users. When impersonation headers are used, the request runs as the target user for API behavior, while internal audit logs still attribute the action to the original impersonator and store the impersonated target details only in internal audit payload data. Account endpoints are read-only while impersonating: they report the target's account, and anything that would change it is refused, so an impersonator cannot alter the target's credentials or delete their account.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-impersonator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "impersonator": { + "description": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", + "type": "boolean", + "example": false + } + }, + "required": [ + "impersonator" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", + "tags": [ + "users" + ], + "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-jwt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "description": "Session ID. Use the string 'recent()' to use the most recent session, which is also the default.", + "type": "string", + "default": "recent()", + "example": "recent()" + }, + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", + "tags": [ + "users" + ], + "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-labels.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "example": [ + "subscriber" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/memberships": { + "get": { + "summary": "List user memberships", + "operationId": "usersListMemberships", + "tags": [ + "users" + ], + "description": "Get the user membership list by its unique ID.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "users\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", + "tags": [ + "users" + ], + "description": "Enable or disable MFA on a user account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "users", + "demo": "users\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + } + }, + { + "name": "updateMFA", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/mfa\/authenticators\/{type}": { + "delete": { + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", + "tags": [ + "users" + ], + "description": "Delete an authenticator app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/challenges\/{challengeId}": { + "get": { + "summary": "Get MFA challenge", + "operationId": "usersGetMFAChallenge", + "tags": [ + "users" + ], + "description": "Get a custom MFA challenge for a user, including the code to be delivered through your own channel.", + "responses": { + "200": { + "description": "MFA Challenge Secret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallengeSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "users\/get-mfa-challenge.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "getMFAChallenge", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "challengeId" + ], + "required": [ + "userId", + "challengeId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaChallengeSecret" + } + ], + "description": "", + "demo": "users\/get-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "challengeId", + "description": "ID of the challenge.", + "required": true, + "schema": { + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "usersListMfaFactors", + "tags": [ + "users" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/recovery-codes": { + "get": { + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", + "tags": [ + "users" + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", + "tags": [ + "users" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", + "tags": [ + "users" + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", + "tags": [ + "users" + ], + "description": "Update the user name by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/passkeys": { + "get": { + "summary": "List user passkeys", + "operationId": "usersListPasskeys", + "tags": [ + "users" + ], + "description": "Get the list of verified passkeys registered by a user.", + "responses": { + "200": { + "description": "Passkeys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "users\/list-passkeys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter and order on the following attributes: $id, $createdAt, $updatedAt, name, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/{userId}\/passkeys\/{passkeyId}": { + "get": { + "summary": "Get user passkey", + "operationId": "usersGetPasskey", + "tags": [ + "users" + ], + "description": "Get a verified passkey of a user by its unique ID.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "users\/get-passkey.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user passkey", + "operationId": "usersUpdatePasskey", + "tags": [ + "users" + ], + "description": "Rename a passkey of a user.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "users\/update-passkey.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Passkey name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete user passkey", + "operationId": "usersDeletePasskey", + "tags": [ + "users" + ], + "description": "Delete a passkey from a user, for example when a device is lost. The passkey can no longer be used to sign in.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "users\/delete-passkey.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", + "tags": [ + "users" + ], + "description": "Update the user password by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-password.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", + "tags": [ + "users" + ], + "description": "Update the user phone by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "description": "User phone number.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "number" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/prefs": { + "get": { + "summary": "Get user preferences", + "operationId": "usersGetPrefs", + "tags": [ + "users" + ], + "description": "Get the user preferences by its unique ID.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", + "tags": [ + "users" + ], + "description": "Update the user preferences by its unique ID. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/sessions": { + "get": { + "summary": "List user sessions", + "operationId": "usersListSessions", + "tags": [ + "users" + ], + "description": "Get the user sessions list by its unique ID.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.read", + "sessions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create session", + "operationId": "usersCreateSession", + "tags": [ + "users" + ], + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", + "tags": [ + "users" + ], + "description": "Delete all user's sessions by using the user's unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/delete-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", + "tags": [ + "users" + ], + "description": "Delete a user sessions by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/delete-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "sessionId", + "description": "Session ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", + "tags": [ + "users" + ], + "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "type": "boolean", + "example": false + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/targets": { + "get": { + "summary": "List user targets", + "operationId": "usersListTargets", + "tags": [ + "users" + ], + "description": "List the messaging targets that are associated with a user.", + "responses": { + "200": { + "description": "Target list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/targetList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user target", + "operationId": "usersCreateTarget", + "tags": [ + "users" + ], + "description": "Create a messaging target.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/create-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TARGET_ID>" + }, + "providerType": { + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "type": "string", + "example": "email", + "title": "MessagingProviderType", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "sms" + ], + "title": "sms" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + } + ] + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "targetId", + "providerType", + "identifier" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/targets\/{targetId}": { + "get": { + "summary": "Get user target", + "operationId": "usersGetTarget", + "tags": [ + "users" + ], + "description": "Get a user's push notification target by ID.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/get-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user target", + "operationId": "usersUpdateTarget", + "tags": [ + "users" + ], + "description": "Update a messaging target.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/update-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "default": "", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "type": "string", + "default": "", + "example": "<NAME>" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete user target", + "operationId": "usersDeleteTarget", + "tags": [ + "users" + ], + "description": "Delete a messaging target.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/delete-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", + "tags": [ + "users" + ], + "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "length": { + "description": "Token length in characters. The default length is 6 characters", + "type": "integer", + "default": 6, + "example": 4, + "format": "int32" + }, + "expire": { + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", + "tags": [ + "users" + ], + "description": "Update the user email verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-email-verification.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emailVerification": { + "description": "User email verification status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "emailVerification" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", + "tags": [ + "users" + ], + "description": "Update the user phone verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-phone-verification.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phoneVerification": { + "description": "User phone verification status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "phoneVerification" + ] + } + } + } + } + } + }, + "\/vcs\/github\/installations\/{installationId}\/detections": { + "post": { + "summary": "Create repository detection", + "operationId": "vcsCreateRepositoryDetection", + "tags": [ + "vcs" + ], + "description": "Analyze a GitHub repository to automatically detect the programming language and runtime environment. This endpoint scans the repository's files and language statistics to determine the appropriate runtime settings for your function. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", + "responses": { + "200": { + "description": "DetectionRuntime, or DetectionFramework", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/detectionRuntime" + }, + { + "$ref": "#\/components\/schemas\/detectionFramework" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "runtime": "#\/components\/schemas\/detectionRuntime", + "framework": "#\/components\/schemas\/detectionFramework" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "demo": "vcs\/create-repository-detection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerRepositoryId": { + "description": "Repository Id", + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "type": { + "description": "Detector type. Must be one of the following: runtime, framework", + "type": "string", + "example": "runtime", + "title": "VCSDetectionType", + "oneOf": [ + { + "type": "string", + "enum": [ + "runtime" + ], + "title": "runtime" + }, + { + "type": "string", + "enum": [ + "framework" + ], + "title": "framework" + } + ] + }, + "providerRootDirectory": { + "description": "Path to Root Directory", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + } + }, + "required": [ + "providerRepositoryId", + "type" + ] + } + } + } + } + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { + "get": { + "summary": "List repositories", + "operationId": "vcsListRepositories", + "tags": [ + "vcs" + ], + "description": "Get a list of GitHub repositories available through your installation. This endpoint returns repositories with their basic information, detected runtime environments, and latest push dates. You can optionally filter repositories using a search term. Each repository's runtime is automatically detected based on its contents and language statistics. The GitHub installation must be properly configured for this endpoint to work.", + "responses": { + "200": { + "description": "Runtime Provider Repositories List, or Framework Provider Repositories List", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/providerRepositoryRuntimeList" + }, + { + "$ref": "#\/components\/schemas\/providerRepositoryFrameworkList" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "runtime": "#\/components\/schemas\/providerRepositoryRuntimeList", + "framework": "#\/components\/schemas\/providerRepositoryFrameworkList" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "demo": "vcs\/list-repositories.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Detector type. Must be one of the following: runtime, framework", + "required": true, + "schema": { + "type": "string", + "example": "runtime", + "title": "VCSDetectionType", + "oneOf": [ + { + "type": "string", + "enum": [ + "runtime" + ], + "title": "runtime" + }, + { + "type": "string", + "enum": [ + "framework" + ], + "title": "framework" + } + ] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit, offset, and equal on namespace.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create repository", + "operationId": "vcsCreateRepository", + "tags": [ + "vcs" + ], + "description": "Create a new GitHub repository through your installation. This endpoint allows you to create either a public or private repository by specifying a name and visibility setting. The repository will be created under your GitHub user account or organization, depending on your installation type. The GitHub installation must be properly configured and have the necessary permissions for repository creation.", + "responses": { + "200": { + "description": "ProviderRepository", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerRepository" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "demo": "vcs\/create-repository.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Repository name (slug)", + "type": "string", + "example": "<NAME>" + }, + "private": { + "description": "Mark repository public or private", + "type": "boolean", + "example": false + }, + "providerNamespace": { + "description": "Namespace of the git repository. Defaults to the installation's own namespace.", + "type": "string", + "default": "", + "example": "<PROVIDER_NAMESPACE>" + } + }, + "required": [ + "name", + "private" + ] + } + } + } + } + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { + "get": { + "summary": "Get repository", + "operationId": "vcsGetRepository", + "tags": [ + "vcs" + ], + "description": "Get detailed information about a specific GitHub repository from your installation. This endpoint returns repository details including its ID, name, visibility status, organization, and latest push date. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.", + "responses": { + "200": { + "description": "ProviderRepository", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerRepository" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "demo": "vcs\/get-repository.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { + "get": { + "summary": "List repository branches", + "operationId": "vcsListRepositoryBranches", + "tags": [ + "vcs" + ], + "description": "Get a list of branches from a GitHub repository in your installation. This endpoint supports filtering by a search term and pagination using query strings such as `Query.limit()`, `Query.offset()`, `Query.cursorAfter()`, and `Query.cursorBefore()`. It returns branch names along with the total number of matches. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", + "responses": { + "200": { + "description": "Branches List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/branchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "demo": "vcs\/list-repository-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "in": "path" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit, offset, cursorAfter, and cursorBefore", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { + "get": { + "summary": "Get files and directories of a VCS repository", + "operationId": "vcsGetRepositoryContents", + "tags": [ + "vcs" + ], + "description": "Get a list of files and directories from a GitHub repository connected to your project. This endpoint returns the contents of a specified repository path, including file names, sizes, and whether each item is a file or directory. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", + "responses": { + "200": { + "description": "VCS Content List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vcsContentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "demo": "vcs\/get-repository-contents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "in": "path" + }, + { + "name": "providerRootDirectory", + "description": "Path to get contents of nested directory", + "required": false, + "schema": { + "type": "string", + "example": "<PROVIDER_ROOT_DIRECTORY>", + "default": "" + }, + "in": "query" + }, + { + "name": "providerReference", + "description": "Git reference (branch, tag, commit) to get contents from", + "required": false, + "schema": { + "type": "string", + "example": "<PROVIDER_REFERENCE>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { + "patch": { + "summary": "Update external deployment (authorize)", + "operationId": "vcsUpdateExternalDeployments", + "tags": [ + "vcs" + ], + "description": "Authorize and create deployments for a GitHub pull request in your project. This endpoint allows external contributions by creating deployments from pull requests, enabling preview environments for code review. The pull request must be open and not previously authorized. The GitHub installation must be properly configured and have access to both the repository and pull request for this endpoint to work.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "repositories", + "demo": "vcs\/update-external-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "repositoryId", + "description": "VCS Repository Id", + "required": true, + "schema": { + "type": "string", + "example": "<REPOSITORY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerPullRequestId": { + "description": "GitHub Pull Request Id", + "type": "string", + "example": "<PROVIDER_PULL_REQUEST_ID>" + } + }, + "required": [ + "providerPullRequestId" + ] + } + } + } + } + } + }, + "\/vcs\/installations": { + "get": { + "summary": "List installations", + "operationId": "vcsListInstallations", + "tags": [ + "vcs" + ], + "description": "List all VCS installations configured for the current project. This endpoint returns a list of installations including their provider, organization, and other configuration details.\n", + "responses": { + "200": { + "description": "Installations List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/installationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "vcs\/list-installations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: provider, organization", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/vcs\/installations\/{installationId}": { + "get": { + "summary": "Get installation", + "operationId": "vcsGetInstallation", + "tags": [ + "vcs" + ], + "description": "Get a VCS installation by its unique ID. This endpoint returns the installation's details including its provider, organization, and configuration. ", + "responses": { + "200": { + "description": "Installation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/installation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "vcs\/get-installation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete installation", + "operationId": "vcsDeleteInstallation", + "tags": [ + "vcs" + ], + "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "vcs\/delete-installation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vcs\/installations\/{installationId}\/namespaces": { + "get": { + "summary": "List namespaces", + "operationId": "vcsListNamespaces", + "tags": [ + "vcs" + ], + "description": "List provider namespaces available to a VCS installation. This can include the user personal namespace and any groups or organizations the installation can browse.", + "responses": { + "200": { + "description": "VCS Namespaces List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vcsNamespaceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "namespaces", + "demo": "vcs\/list-namespaces.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb": { + "get": { + "summary": "List databases", + "operationId": "vectorsDBList", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "vectorsDBCreate", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/vectorsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "vectorsDBListSpecifications", + "tags": [ + "vectorsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", + "tags": [ + "vectorsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorsDBCreateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/vectorsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorsDBGetTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "vectorsDBUpdateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "vectorsDBDeleteTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorsDBCreateOperations", + "tags": [ + "vectorsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation in a four-dimensional collection", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + ] + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "vectorsDBGet", + "tags": [ + "vectorsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "vectorsDBUpdate", + "tags": [ + "vectorsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "vectorsDBDelete", + "tags": [ + "vectorsDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "vectorsDBListCollections", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "VectorsDB Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollectionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collection", + "operationId": "vectorsDBCreateCollection", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "dimension": { + "description": "Embedding dimension.", + "type": "integer", + "example": 4, + "format": "int32" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "collectionId", + "name", + "dimension" + ] + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "vectorsDBGetCollection", + "tags": [ + "vectorsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "vectorsDBUpdateCollection", + "tags": [ + "vectorsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "dimension": { + "description": "Embedding dimensions.", + "type": "integer", + "example": 4, + "format": "int32" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false, + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "vectorsDBDeleteCollection", + "tags": [ + "vectorsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "vectorsDBListDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "vectorsDBCreateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorsDB", + "platforms": [ + "console", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "key": "value" + } + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "vectorsDBUpsertDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorsDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "demo": "vectorsdb\/upsert-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "vectorsDBUpdateDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update metadata on explicitly selected documents", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "vectorsDBDeleteDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { + "post": { + "summary": "Create query", + "operationId": "vectorsDBCreateQuery", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-query.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID to read uncommitted changes within the transaction.", + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "total": { + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "type": "boolean", + "default": true, + "example": false + }, + "ttl": { + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorsDBGetDocument", + "tags": [ + "vectorsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorsDBUpsertDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update a document in a four-dimensional collection", + "value": { + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "vectorsDBUpdateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document metadata", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "vectorsDBDeleteDocument", + "tags": [ + "vectorsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "vectorsDBListIndexes", + "tags": [ + "vectorsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "vectorsDBCreateIndex", + "tags": [ + "vectorsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "hnsw_euclidean", + "title": "VectorsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "hnsw_euclidean" + ], + "title": "hnsw_euclidean" + }, + { + "type": "string", + "enum": [ + "hnsw_dot" + ], + "title": "hnsw_dot" + }, + { + "type": "string", + "enum": [ + "hnsw_cosine" + ], + "title": "hnsw_cosine" + }, + { + "type": "string", + "enum": [ + "object" + ], + "title": "object" + }, + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "embeddings" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "vectorsDBGetIndex", + "tags": [ + "vectorsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorsDBDeleteIndex", + "tags": [ + "vectorsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "vectorsDBCreateFailover", + "tags": [ + "vectorsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "vectorsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "vectorsDBListOperations", + "tags": [ + "vectorsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "vectorsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "vectorsDBGetReplicas", + "tags": [ + "vectorsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "vectorsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "vectorsDBGetStatus", + "tags": [ + "vectorsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/waf\/rules": { + "get": { + "summary": "List WAF rules.", + "operationId": "wafListRules", + "tags": [ + "waf" + ], + "description": "List WAF rules for the current project.\n", + "responses": { + "200": { + "description": "WAF rule list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/waf\/rules\/bypass": { + "post": { + "summary": "Create a bypass WAF rule.", + "operationId": "wafCreateBypassRule", + "tags": [ + "waf" + ], + "description": "Create a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-bypass-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Leave empty for the API resource type.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Bypass other rules for an IP", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Office network", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"198.51.100.10\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/bypass\/{ruleId}": { + "patch": { + "summary": "Update a bypass WAF rule.", + "operationId": "wafUpdateBypassRule", + "tags": [ + "waf" + ], + "description": "Update a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-bypass-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/challenge": { + "post": { + "summary": "Create a challenge WAF rule.", + "operationId": "wafCreateChallengeRule", + "tags": [ + "waf" + ], + "description": "Create a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleChallenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-challenge-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "challengeType": { + "description": "Challenge type enforced by the rule.", + "type": "string", + "default": "compute", + "example": "compute" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "difficulty": { + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", + "type": "integer", + "default": 3, + "example": 1, + "format": "int32" + }, + "ttl": { + "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", + "type": "integer", + "default": 1800, + "example": 900, + "format": "int32" + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Challenge requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Challenge sign-ins", + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/challenge\/{ruleId}": { + "patch": { + "summary": "Update a challenge WAF rule.", + "operationId": "wafUpdateChallengeRule", + "tags": [ + "waf" + ], + "description": "Update a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleChallenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-challenge-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "challengeType": { + "description": "Challenge type enforced by the rule.", + "type": "string", + "example": "compute", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "difficulty": { + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "ttl": { + "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", + "type": "integer", + "example": 900, + "format": "int32", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny": { + "post": { + "summary": "Create a deny WAF rule.", + "operationId": "wafCreateDenyRule", + "tags": [ + "waf" + ], + "description": "Create a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Deny requests from an IP range", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Block abusive range", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"203.0.113.0\/24\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny\/{ruleId}": { + "patch": { + "summary": "Update a deny WAF rule.", + "operationId": "wafUpdateDenyRule", + "tags": [ + "waf" + ], + "description": "Update a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit": { + "post": { + "summary": "Create a rate-limit WAF rule.", + "operationId": "wafCreateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Create a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "limit": { + "description": "Maximum number of matching requests allowed in the configured interval.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "interval": { + "description": "Interval in seconds used for rate limiting.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "key": { + "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", + "type": "string", + "default": "ip", + "example": "ip" + }, + "strategy": { + "description": "Rate limit strategy. `fixedWindow` counts requests in discrete intervals, `slidingWindow` weights the previous interval for smoother limiting, and `tokenBucket` refills allowance continuously to permit short bursts.", + "type": "string", + "default": "fixedWindow", + "example": "fixedWindow" + }, + "maxBucketSize": { + "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Defaults to `limit` when omitted. Ignored by other strategies.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "limit", + "interval" + ] + }, + "examples": { + "scoped": { + "summary": "Rate limit requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Limit sign-ins", + "limit": 10, + "interval": 60, + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit\/{ruleId}": { + "patch": { + "summary": "Update a rate-limit WAF rule.", + "operationId": "wafUpdateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Update a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "limit": { + "description": "Maximum number of matching requests allowed in the configured interval.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "interval": { + "description": "Interval in seconds used for rate limiting.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "key": { + "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", + "type": "string", + "example": "ip", + "nullable": true + }, + "maxBucketSize": { + "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Ignored by other strategies. The strategy itself cannot be changed after creation.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect": { + "post": { + "summary": "Create a redirect WAF rule.", + "operationId": "wafCreateRedirectRule", + "tags": [ + "waf" + ], + "description": "Create a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-redirect-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "location": { + "description": "Location used for redirect responses.", + "type": "string", + "example": "<LOCATION>" + }, + "statusCode": { + "description": "Integer status code used for redirect responses.", + "type": "integer", + "example": 300, + "format": "int32" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "location", + "statusCode" + ] + }, + "examples": { + "scoped": { + "summary": "Redirect requests for a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Moved page", + "location": "\/new-page", + "statusCode": 301, + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"path\",\"values\":[\"\/old-page\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect\/{ruleId}": { + "patch": { + "summary": "Update a redirect WAF rule.", + "operationId": "wafUpdateRedirectRule", + "tags": [ + "waf" + ], + "description": "Update a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-redirect-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "location": { + "description": "Location used for redirect responses.", + "type": "string", + "example": "<LOCATION>", + "nullable": true + }, + "statusCode": { + "description": "Integer status code used for redirect responses.", + "type": "integer", + "example": 300, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/{ruleId}": { + "get": { + "summary": "Get a WAF rule.", + "operationId": "wafGetRule", + "tags": [ + "waf" + ], + "description": "Get a WAF rule by its ID.\n", + "responses": { + "200": { + "description": "WafRuleBypass, or WafRuleDeny, or WafRuleChallenge, or WafRuleRateLimit, or WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/wafRuleBypass" + }, + { + "$ref": "#\/components\/schemas\/wafRuleDeny" + }, + { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + ], + "discriminator": { + "propertyName": "action", + "mapping": { + "bypass": "#\/components\/schemas\/wafRuleBypass", + "deny": "#\/components\/schemas\/wafRuleDeny", + "challenge": "#\/components\/schemas\/wafRuleChallenge", + "rateLimit": "#\/components\/schemas\/wafRuleRateLimit", + "redirect": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a WAF rule.", + "operationId": "wafDeleteRule", + "tags": [ + "waf" + ], + "description": "Delete a WAF rule.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/delete-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/webhooks": { + "get": { + "summary": "List webhooks", + "operationId": "webhooksList", + "tags": [ + "webhooks" + ], + "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Webhooks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhookList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, url, authUsername, tls, events, enabled, logs, attempts", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create webhook", + "operationId": "webhooksCreate", + "tags": [ + "webhooks" + ], + "description": "Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur.", + "responses": { + "201": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "webhookId": { + "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "url": { + "description": "Webhook URL.", + "type": "string", + "example": "https:\/\/example.com\/webhook" + }, + "name": { + "description": "Webhook name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "example": [ + "users.*.create" + ], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Enable or disable a webhook.", + "type": "boolean", + "default": true, + "example": false + }, + "tls": { + "description": "Certificate verification, false for disabled or true for enabled.", + "type": "boolean", + "default": false, + "example": false + }, + "authUsername": { + "description": "Webhook HTTP user. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "<AUTH_USERNAME>" + }, + "authPassword": { + "description": "Webhook HTTP password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "secret": { + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "type": "string", + "example": "<SECRET>", + "nullable": true + } + }, + "required": [ + "webhookId", + "url", + "name", + "events" + ] + } + } + } + } + } + }, + "\/webhooks\/{webhookId}": { + "get": { + "summary": "Get webhook", + "operationId": "webhooksGet", + "tags": [ + "webhooks" + ], + "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update webhook", + "operationId": "webhooksUpdate", + "tags": [ + "webhooks" + ], + "description": "Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook.", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Webhook name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Webhook URL.", + "type": "string", + "example": "https:\/\/example.com\/webhook" + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "example": [ + "users.*.create" + ], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Enable or disable a webhook.", + "type": "boolean", + "default": true, + "example": false + }, + "tls": { + "description": "Certificate verification, false for disabled or true for enabled.", + "type": "boolean", + "default": false, + "example": false + }, + "authUsername": { + "description": "Webhook HTTP user. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "<AUTH_USERNAME>" + }, + "authPassword": { + "description": "Webhook HTTP password. Max length: 256 chars. Omit to keep the current password; it is cleared when the URL changes or TLS verification is disabled.", + "type": "string", + "example": "password", + "format": "password", + "nullable": true + } + }, + "required": [ + "name", + "url", + "events" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete webhook", + "operationId": "webhooksDelete", + "tags": [ + "webhooks" + ], + "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + } + }, + "\/webhooks\/{webhookId}\/secret": { + "patch": { + "summary": "Update webhook secret key", + "operationId": "webhooksUpdateSecret", + "tags": [ + "webhooks" + ], + "description": "Update the webhook signing key. This endpoint can be used to regenerate the signing key used to sign and validate payload deliveries for a specific webhook.", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/update-secret.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "secret": { + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "type": "string", + "example": "<SECRET>", + "nullable": true + } + } + } + } + } + } + } + } + }, + "tags": [ + { + "name": "ping", + "description": "" + }, + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "name": "avatars", + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." + }, + { + "name": "databases", + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" + }, + { + "name": "tablesDB", + "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" + }, + { + "name": "documentsDB", + "description": "" + }, + { + "name": "vectorsDB", + "description": "" + }, + { + "name": "projects", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "presences", + "description": "The Presences service allows you to track and manage real-time user presence in your project." + }, + { + "name": "functions", + "description": "The Functions Service allows you view, create and manage your Cloud Functions." + }, + { + "name": "messaging", + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." + }, + { + "name": "notifications", + "description": "The Notifications service allows you to read and manage your Appwrite Console notifications." + }, + { + "name": "sites", + "description": "The Sites Service allows you view, create and manage your web applications." + }, + { + "name": "console", + "description": "The Console service allows you to interact with console relevant information." + }, + { + "name": "proxy", + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." + }, + { + "name": "teams", + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" + }, + { + "name": "tokens", + "description": "The Tokens service allows you to create and manage resource tokens for secure file access." + }, + { + "name": "users", + "description": "The Users service allows you to manage your project users." + }, + { + "name": "usage", + "description": "" + }, + { + "name": "storage", + "description": "The Storage service allows you to manage your project files." + }, + { + "name": "vcs", + "description": "The VCS service allows you to interact with providers like GitHub, GitLab etc." + }, + { + "name": "webhooks", + "description": "The Webhooks service allows you to manage your project webhooks." + }, + { + "name": "migrations", + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." + }, + { + "name": "organization", + "description": "The Organization service allows you to manage organization-level projects." + }, + { + "name": "project", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "advisor", + "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." + }, + { + "name": "mysql", + "description": "" + }, + { + "name": "postgresql", + "description": "" + }, + { + "name": "mongo", + "description": "" + }, + { + "name": "apps", + "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." + }, + { + "name": "oauth2", + "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." + }, + { + "name": "domains", + "description": "" + }, + { + "name": "manager", + "description": "" + }, + { + "name": "organizations", + "description": "The Organizations service allows you to manage organization billing, plans, invoices, and add-ons." + }, + { + "name": "affiliates", + "description": "The Affiliates service allows you to share referral codes, track conversions, and apply earned credits." + }, + { + "name": "backups", + "description": "The Backups service allows you to manage backup policies, archives, and restorations for your project." + }, + { + "name": "activities", + "description": "The Activities service allows you to list and inspect project activity events." + }, + { + "name": "analytics", + "description": "" + }, + { + "name": "waf", + "description": "" + }, + { + "name": "graphql", + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." + }, + { + "name": "embeddings", + "description": "" + }, + { + "name": "growth", + "description": "The Growth service allows you to contact the Appwrite team and record self-hosted installations." + }, + { + "name": "admin", + "description": "" + } + ], + "components": { + "schemas": { + "any": { + "description": "Any", + "type": "object", + "additionalProperties": true, + "example": {} + }, + "rowList": { + "description": "Rows List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rows that matched your query.", + "format": "int32", + "example": 5 + }, + "rows": { + "type": "array", + "description": "List of rows.", + "items": { + "$ref": "#\/components\/schemas\/row" + }, + "example": [] + } + }, + "required": [ + "total", + "rows" + ], + "example": { + "total": 5, + "rows": "" + } + }, + "documentList": { + "description": "Documents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of documents that matched your query.", + "format": "int32", + "example": 5 + }, + "documents": { + "type": "array", + "description": "List of documents.", + "items": { + "$ref": "#\/components\/schemas\/document" + }, + "example": [] + } + }, + "required": [ + "total", + "documents" + ], + "example": { + "total": 5, + "documents": "" + } + }, + "presenceList": { + "description": "Presences List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of presences that matched your query.", + "format": "int32", + "example": 5 + }, + "presences": { + "type": "array", + "description": "List of presences.", + "items": { + "$ref": "#\/components\/schemas\/presence" + }, + "example": [] + } + }, + "required": [ + "total", + "presences" + ], + "example": { + "total": 5, + "presences": "" + } + }, + "tableList": { + "description": "Tables List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tables that matched your query.", + "format": "int32", + "example": 5 + }, + "tables": { + "type": "array", + "description": "List of tables.", + "items": { + "$ref": "#\/components\/schemas\/table" + }, + "example": [] + } + }, + "required": [ + "total", + "tables" + ], + "example": { + "total": 5, + "tables": "" + } + }, + "collectionList": { + "description": "Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "format": "int32", + "example": 5 + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/collection" + }, + "example": [] + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "databaseList": { + "description": "Databases List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "format": "int32", + "example": 5 + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/database" + }, + "example": [] + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, + "indexList": { + "description": "Indexes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of indexes that matched your query.", + "format": "int32", + "example": 5 + }, + "indexes": { + "type": "array", + "description": "List of indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + } + }, + "required": [ + "total", + "indexes" + ], + "example": { + "total": 5, + "indexes": "" + } + }, + "columnIndexList": { + "description": "Column Indexes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of indexes that matched your query.", + "format": "int32", + "example": 5 + }, + "indexes": { + "type": "array", + "description": "List of indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "example": [] + } + }, + "required": [ + "total", + "indexes" + ], + "example": { + "total": 5, + "indexes": "" + } + }, + "userList": { + "description": "Users List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of users that matched your query.", + "format": "int32", + "example": 5 + }, + "users": { + "type": "array", + "description": "List of users.", + "items": { + "$ref": "#\/components\/schemas\/user" + }, + "example": [] + } + }, + "required": [ + "total", + "users" + ], + "example": { + "total": 5, + "users": "" + } + }, + "sessionList": { + "description": "Sessions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sessions that matched your query.", + "format": "int32", + "example": 5 + }, + "sessions": { + "type": "array", + "description": "List of sessions.", + "items": { + "$ref": "#\/components\/schemas\/session" + }, + "example": [] + } + }, + "required": [ + "total", + "sessions" + ], + "example": { + "total": 5, + "sessions": "" + } + }, + "identityList": { + "description": "Identities List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of identities that matched your query.", + "format": "int32", + "example": 5 + }, + "identities": { + "type": "array", + "description": "List of identities.", + "items": { + "$ref": "#\/components\/schemas\/identity" + }, + "example": [] + } + }, + "required": [ + "total", + "identities" + ], + "example": { + "total": 5, + "identities": "" + } + }, + "notificationList": { + "description": "Notifications List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of notifications that matched your query.", + "format": "int32", + "example": 5 + }, + "notifications": { + "type": "array", + "description": "List of notifications.", + "items": { + "$ref": "#\/components\/schemas\/notification" + }, + "example": [] + } + }, + "required": [ + "total", + "notifications" + ], + "example": { + "total": 5, + "notifications": "" + } + }, + "fileList": { + "description": "Files List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of files that matched your query.", + "format": "int32", + "example": 5 + }, + "files": { + "type": "array", + "description": "List of files.", + "items": { + "$ref": "#\/components\/schemas\/file" + }, + "example": [] + } + }, + "required": [ + "total", + "files" + ], + "example": { + "total": 5, + "files": "" + } + }, + "bucketList": { + "description": "Buckets List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of buckets that matched your query.", + "format": "int32", + "example": 5 + }, + "buckets": { + "type": "array", + "description": "List of buckets.", + "items": { + "$ref": "#\/components\/schemas\/bucket" + }, + "example": [] + } + }, + "required": [ + "total", + "buckets" + ], + "example": { + "total": 5, + "buckets": "" + } + }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/resourceToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "teamList": { + "description": "Teams List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "format": "int32", + "example": 5 + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/team" + }, + "example": [] + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "membershipList": { + "description": "Memberships List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of memberships that matched your query.", + "format": "int32", + "example": 5 + }, + "memberships": { + "type": "array", + "description": "List of memberships.", + "items": { + "$ref": "#\/components\/schemas\/membership" + }, + "example": [] + } + }, + "required": [ + "total", + "memberships" + ], + "example": { + "total": 5, + "memberships": "" + } + }, + "siteList": { + "description": "Sites List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sites that matched your query.", + "format": "int32", + "example": 5 + }, + "sites": { + "type": "array", + "description": "List of sites.", + "items": { + "$ref": "#\/components\/schemas\/site" + }, + "example": [] + } + }, + "required": [ + "total", + "sites" + ], + "example": { + "total": 5, + "sites": "" + } + }, + "templateSiteList": { + "description": "Site Templates List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates that matched your query.", + "format": "int32", + "example": 5 + }, + "templates": { + "type": "array", + "description": "List of templates.", + "items": { + "$ref": "#\/components\/schemas\/templateSite" + }, + "example": [] + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "functionList": { + "description": "Functions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of functions that matched your query.", + "format": "int32", + "example": 5 + }, + "functions": { + "type": "array", + "description": "List of functions.", + "items": { + "$ref": "#\/components\/schemas\/function" + }, + "example": [] + } + }, + "required": [ + "total", + "functions" + ], + "example": { + "total": 5, + "functions": "" + } + }, + "templateFunctionList": { + "description": "Function Templates List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates that matched your query.", + "format": "int32", + "example": 5 + }, + "templates": { + "type": "array", + "description": "List of templates.", + "items": { + "$ref": "#\/components\/schemas\/templateFunction" + }, + "example": [] + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "installationList": { + "description": "Installations List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of installations that matched your query.", + "format": "int32", + "example": 5 + }, + "installations": { + "type": "array", + "description": "List of installations.", + "items": { + "$ref": "#\/components\/schemas\/installation" + }, + "example": [] + } + }, + "required": [ + "total", + "installations" + ], + "example": { + "total": 5, + "installations": "" + } + }, + "providerRepositoryFrameworkList": { + "description": "Framework Provider Repositories List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of frameworkProviderRepositories that matched your query.", + "format": "int32", + "example": 5 + }, + "frameworkProviderRepositories": { + "type": "array", + "description": "List of frameworkProviderRepositories.", + "items": { + "$ref": "#\/components\/schemas\/providerRepositoryFramework" + }, + "example": [] + }, + "type": { + "type": "string", + "description": "Provider repository list type.", + "example": "framework" + } + }, + "required": [ + "total", + "frameworkProviderRepositories", + "type" + ], + "example": { + "total": 5, + "frameworkProviderRepositories": "", + "type": "framework" + } + }, + "providerRepositoryRuntimeList": { + "description": "Runtime Provider Repositories List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of runtimeProviderRepositories that matched your query.", + "format": "int32", + "example": 5 + }, + "runtimeProviderRepositories": { + "type": "array", + "description": "List of runtimeProviderRepositories.", + "items": { + "$ref": "#\/components\/schemas\/providerRepositoryRuntime" + }, + "example": [] + }, + "type": { + "type": "string", + "description": "Provider repository list type.", + "example": "runtime" + } + }, + "required": [ + "total", + "runtimeProviderRepositories", + "type" + ], + "example": { + "total": 5, + "runtimeProviderRepositories": "", + "type": "runtime" + } + }, + "vcsNamespace": { + "description": "VcsNamespace", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "VCS (Version Control System) namespace ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) namespace display name.", + "example": "Appwrite" + }, + "path": { + "type": "string", + "description": "VCS (Version Control System) namespace path, used to filter repositories by namespace.", + "example": "appwrite" + }, + "type": { + "type": "string", + "description": "Namespace type. Either the user's personal namespace or a group\/organization.", + "example": "user" + }, + "avatarUrl": { + "type": "string", + "description": "Namespace avatar URL.", + "example": "https:\/\/example.com\/avatar.png" + } + }, + "required": [ + "$id", + "name", + "path", + "type", + "avatarUrl" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "Appwrite", + "path": "appwrite", + "type": "user", + "avatarUrl": "https:\/\/example.com\/avatar.png" + } + }, + "vcsNamespaceList": { + "description": "VCS Namespaces List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of namespaces that matched your query.", + "format": "int32", + "example": 5 + }, + "namespaces": { + "type": "array", + "description": "List of namespaces.", + "items": { + "$ref": "#\/components\/schemas\/vcsNamespace" + }, + "example": [] + } + }, + "required": [ + "total", + "namespaces" + ], + "example": { + "total": 5, + "namespaces": "" + } + }, + "branchList": { + "description": "Branches List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of branches that matched your query.", + "format": "int32", + "example": 5 + }, + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#\/components\/schemas\/branch" + }, + "example": [] + } + }, + "required": [ + "total", + "branches" + ], + "example": { + "total": 5, + "branches": "" + } + }, + "frameworkList": { + "description": "Frameworks List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of frameworks that matched your query.", + "format": "int32", + "example": 5 + }, + "frameworks": { + "type": "array", + "description": "List of frameworks.", + "items": { + "$ref": "#\/components\/schemas\/framework" + }, + "example": [] + } + }, + "required": [ + "total", + "frameworks" + ], + "example": { + "total": 5, + "frameworks": "" + } + }, + "runtimeList": { + "description": "Runtimes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of runtimes that matched your query.", + "format": "int32", + "example": 5 + }, + "runtimes": { + "type": "array", + "description": "List of runtimes.", + "items": { + "$ref": "#\/components\/schemas\/runtime" + }, + "example": [] + } + }, + "required": [ + "total", + "runtimes" + ], + "example": { + "total": 5, + "runtimes": "" + } + }, + "deploymentList": { + "description": "Deployments List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of deployments that matched your query.", + "format": "int32", + "example": 5 + }, + "deployments": { + "type": "array", + "description": "List of deployments.", + "items": { + "$ref": "#\/components\/schemas\/deployment" + }, + "example": [] + } + }, + "required": [ + "total", + "deployments" + ], + "example": { + "total": 5, + "deployments": "" + } + }, + "executionList": { + "description": "Executions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of executions that matched your query.", + "format": "int32", + "example": 5 + }, + "executions": { + "type": "array", + "description": "List of executions.", + "items": { + "$ref": "#\/components\/schemas\/execution" + }, + "example": [] + } + }, + "required": [ + "total", + "executions" + ], + "example": { + "total": 5, + "executions": "" + } + }, + "projectList": { + "description": "Projects List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "webhookList": { + "description": "Webhooks List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of webhooks that matched your query.", + "format": "int32", + "example": 5 + }, + "webhooks": { + "type": "array", + "description": "List of webhooks.", + "items": { + "$ref": "#\/components\/schemas\/webhook" + }, + "example": [] + } + }, + "required": [ + "total", + "webhooks" + ], + "example": { + "total": 5, + "webhooks": "" + } + }, + "keyList": { + "description": "API Keys List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/key" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + }, + "countryList": { + "description": "Countries List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of countries that matched your query.", + "format": "int32", + "example": 5 + }, + "countries": { + "type": "array", + "description": "List of countries.", + "items": { + "$ref": "#\/components\/schemas\/country" + }, + "example": [] + } + }, + "required": [ + "total", + "countries" + ], + "example": { + "total": 5, + "countries": "" + } + }, + "continentList": { + "description": "Continents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of continents that matched your query.", + "format": "int32", + "example": 5 + }, + "continents": { + "type": "array", + "description": "List of continents.", + "items": { + "$ref": "#\/components\/schemas\/continent" + }, + "example": [] + } + }, + "required": [ + "total", + "continents" + ], + "example": { + "total": 5, + "continents": "" + } + }, + "languageList": { + "description": "Languages List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of languages that matched your query.", + "format": "int32", + "example": 5 + }, + "languages": { + "type": "array", + "description": "List of languages.", + "items": { + "$ref": "#\/components\/schemas\/language" + }, + "example": [] + } + }, + "required": [ + "total", + "languages" + ], + "example": { + "total": 5, + "languages": "" + } + }, + "currencyList": { + "description": "Currencies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of currencies that matched your query.", + "format": "int32", + "example": 5 + }, + "currencies": { + "type": "array", + "description": "List of currencies.", + "items": { + "$ref": "#\/components\/schemas\/currency" + }, + "example": [] + } + }, + "required": [ + "total", + "currencies" + ], + "example": { + "total": 5, + "currencies": "" + } + }, + "phoneList": { + "description": "Phones List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of phones that matched your query.", + "format": "int32", + "example": 5 + }, + "phones": { + "type": "array", + "description": "List of phones.", + "items": { + "$ref": "#\/components\/schemas\/phone" + }, + "example": [] + } + }, + "required": [ + "total", + "phones" + ], + "example": { + "total": 5, + "phones": "" + } + }, + "variableList": { + "description": "Variables List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of variables that matched your query.", + "format": "int32", + "example": 5 + }, + "variables": { + "type": "array", + "description": "List of variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + } + }, + "required": [ + "total", + "variables" + ], + "example": { + "total": 5, + "variables": "" + } + }, + "mockNumberList": { + "description": "Mock Numbers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of mockNumbers that matched your query.", + "format": "int32", + "example": 5 + }, + "mockNumbers": { + "type": "array", + "description": "List of mockNumbers.", + "items": { + "$ref": "#\/components\/schemas\/mockNumber" + }, + "example": [] + } + }, + "required": [ + "total", + "mockNumbers" + ], + "example": { + "total": 5, + "mockNumbers": "" + } + }, + "policyList": { + "description": "Policies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of policies in the given project.", + "format": "int32", + "example": 10 + }, + "policies": { + "type": "array", + "description": "List of policies.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$ref": "#\/components\/schemas\/policyMfaFactors" + }, + { + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" + }, + { + "$ref": "#\/components\/schemas\/policyPasskey" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "password-pwned": "#\/components\/schemas\/policyPasswordPwned", + "session-alert": "#\/components\/schemas\/policySessionAlert", + "session-duration": "#\/components\/schemas\/policySessionDuration", + "session-invalidation": "#\/components\/schemas\/policySessionInvalidation", + "session-limit": "#\/components\/schemas\/policySessionLimit", + "user-limit": "#\/components\/schemas\/policyUserLimit", + "membership-privacy": "#\/components\/schemas\/policyMembershipPrivacy", + "mfa-factors": "#\/components\/schemas\/policyMfaFactors", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail", + "passkey": "#\/components\/schemas\/policyPasskey" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "policies" + ], + "example": { + "total": 10, + "policies": "" + } + }, + "emailTemplateList": { + "description": "Email Templates List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates that matched your query.", + "format": "int32", + "example": 5 + }, + "templates": { + "type": "array", + "description": "List of templates.", + "items": { + "$ref": "#\/components\/schemas\/emailTemplate" + }, + "example": [] + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "proxyRuleList": { + "description": "Rule List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rules that matched your query.", + "format": "int32", + "example": 5 + }, + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/proxyRule" + }, + "example": [] + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "scheduleList": { + "description": "Schedules List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of schedules that matched your query.", + "format": "int32", + "example": 5 + }, + "schedules": { + "type": "array", + "description": "List of schedules.", + "items": { + "$ref": "#\/components\/schemas\/schedule" + }, + "example": [] + } + }, + "required": [ + "total", + "schedules" + ], + "example": { + "total": 5, + "schedules": "" + } + }, + "stageList": { + "description": "Stages List", + "type": "object", + "properties": { + "stages": { + "type": "array", + "description": "List of stages.", + "items": { + "$ref": "#\/components\/schemas\/stage" + }, + "example": [] + } + }, + "required": [ + "stages" + ], + "example": { + "stages": "" + } + }, + "localeCodeList": { + "description": "Locale codes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of localeCodes that matched your query.", + "format": "int32", + "example": 5 + }, + "localeCodes": { + "type": "array", + "description": "List of localeCodes.", + "items": { + "$ref": "#\/components\/schemas\/localeCode" + }, + "example": [] + } + }, + "required": [ + "total", + "localeCodes" + ], + "example": { + "total": 5, + "localeCodes": "" + } + }, + "providerList": { + "description": "Provider list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of providers that matched your query.", + "format": "int32", + "example": 5 + }, + "providers": { + "type": "array", + "description": "List of providers.", + "items": { + "$ref": "#\/components\/schemas\/provider" + }, + "example": [] + } + }, + "required": [ + "total", + "providers" + ], + "example": { + "total": 5, + "providers": "" + } + }, + "messageList": { + "description": "Message list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of messages that matched your query.", + "format": "int32", + "example": 5 + }, + "messages": { + "type": "array", + "description": "List of messages.", + "items": { + "$ref": "#\/components\/schemas\/message" + }, + "example": [] + } + }, + "required": [ + "total", + "messages" + ], + "example": { + "total": 5, + "messages": "" + } + }, + "topicList": { + "description": "Topic list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of topics that matched your query.", + "format": "int32", + "example": 5 + }, + "topics": { + "type": "array", + "description": "List of topics.", + "items": { + "$ref": "#\/components\/schemas\/topic" + }, + "example": [] + } + }, + "required": [ + "total", + "topics" + ], + "example": { + "total": 5, + "topics": "" + } + }, + "subscriberList": { + "description": "Subscriber list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of subscribers that matched your query.", + "format": "int32", + "example": 5 + }, + "subscribers": { + "type": "array", + "description": "List of subscribers.", + "items": { + "$ref": "#\/components\/schemas\/subscriber" + }, + "example": [] + } + }, + "required": [ + "total", + "subscribers" + ], + "example": { + "total": 5, + "subscribers": "" + } + }, + "targetList": { + "description": "Target list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of targets that matched your query.", + "format": "int32", + "example": 5 + }, + "targets": { + "type": "array", + "description": "List of targets.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + } + }, + "required": [ + "total", + "targets" + ], + "example": { + "total": 5, + "targets": "" + } + }, + "transactionList": { + "description": "Transaction List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of transactions that matched your query.", + "format": "int32", + "example": 5 + }, + "transactions": { + "type": "array", + "description": "List of transactions.", + "items": { + "$ref": "#\/components\/schemas\/transaction" + }, + "example": [] + } + }, + "required": [ + "total", + "transactions" + ], + "example": { + "total": 5, + "transactions": "" + } + }, + "migrationList": { + "description": "Migrations List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of migrations that matched your query.", + "format": "int32", + "example": 5 + }, + "migrations": { + "type": "array", + "description": "List of migrations.", + "items": { + "$ref": "#\/components\/schemas\/migration" + }, + "example": [] + } + }, + "required": [ + "total", + "migrations" + ], + "example": { + "total": 5, + "migrations": "" + } + }, + "specificationList": { + "description": "Specifications List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of specifications that matched your query.", + "format": "int32", + "example": 5 + }, + "specifications": { + "type": "array", + "description": "List of specifications.", + "items": { + "$ref": "#\/components\/schemas\/specification" + }, + "example": [] + } + }, + "required": [ + "total", + "specifications" + ], + "example": { + "total": 5, + "specifications": "" + } + }, + "vcsContentList": { + "description": "VCS Content List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of contents that matched your query.", + "format": "int32", + "example": 5 + }, + "contents": { + "type": "array", + "description": "List of contents.", + "items": { + "$ref": "#\/components\/schemas\/vcsContent" + }, + "example": [] + } + }, + "required": [ + "total", + "contents" + ], + "example": { + "total": 5, + "contents": "" + } + }, + "vectorsdbCollectionList": { + "description": "VectorsDB Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "format": "int32", + "example": 5 + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + }, + "example": [] + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "embeddingList": { + "description": "Embedding list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "format": "int32", + "example": 5 + }, + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "$ref": "#\/components\/schemas\/embedding" + }, + "example": [] + } + }, + "required": [ + "total", + "embeddings" + ], + "example": { + "total": 5, + "embeddings": "" + } + }, + "insightList": { + "description": "Insights List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of insights that matched your query.", + "format": "int32", + "example": 5 + }, + "insights": { + "type": "array", + "description": "List of insights.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "example": [] + } + }, + "required": [ + "total", + "insights" + ], + "example": { + "total": 5, + "insights": "" + } + }, + "reportList": { + "description": "Reports List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of reports that matched your query.", + "format": "int32", + "example": 5 + }, + "reports": { + "type": "array", + "description": "List of reports.", + "items": { + "$ref": "#\/components\/schemas\/report" + }, + "example": [] + } + }, + "required": [ + "total", + "reports" + ], + "example": { + "total": 5, + "reports": "" + } + }, + "database": { + "description": "Database", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database name.", + "example": "My Database" + }, + "$createdAt": { + "type": "string", + "description": "Database creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "enabled": { + "type": "boolean", + "description": "If database is enabled. Can be 'enabled' or 'disabled'. When disabled, the database is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "type": { + "description": "Database type.", + "example": "legacy", + "title": "DatabaseType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "legacy" + ], + "title": "legacy" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "mysql" + ], + "title": "mysql" + }, + { + "type": "string", + "enum": [ + "postgresql" + ], + "title": "postgresql" + }, + { + "type": "string", + "enum": [ + "mongodb" + ], + "title": "mongodb" + } + ] + }, + "status": { + "description": "Dedicated database lifecycle status. Null when the database has no valid dedicated backing.", + "readOnly": true, + "example": "ready", + "title": "DatabaseStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "provisioning" + ], + "title": "provisioning" + }, + { + "type": "string", + "enum": [ + "ready" + ], + "title": "ready" + }, + { + "type": "string", + "enum": [ + "inactive" + ], + "title": "inactive" + }, + { + "type": "string", + "enum": [ + "paused" + ], + "title": "paused" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "deleted" + ], + "title": "deleted" + }, + { + "type": "string", + "enum": [ + "restoring" + ], + "title": "restoring" + }, + { + "type": "string", + "enum": [ + "scaling" + ], + "title": "scaling" + }, + { + "type": "string", + "enum": [ + "upgrading" + ], + "title": "upgrading" + }, + { + "type": "string", + "enum": [ + "migrating" + ], + "title": "migrating" + }, + { + "type": "string", + "enum": [ + "pausing" + ], + "title": "pausing" + }, + { + "type": "string", + "enum": [ + "resuming" + ], + "title": "resuming" + }, + { + "type": "string", + "enum": [ + "failing-over" + ], + "title": "failing-over" + } + ], + "nullable": true + }, + "engine": { + "type": "string", + "description": "Underlying engine of the dedicated backing: postgresql, mysql, or mongodb. A managed product (tablesdb, documentsdb, vectorsdb) reports the engine it runs on, so its type and engine can differ. Null when the database has no dedicated backing.", + "readOnly": true, + "example": "postgresql", + "nullable": true + }, + "specification": { + "type": "string", + "description": "Compute specification identifier of the dedicated backing, e.g. s-2vcpu-2gb. Null when the database has no dedicated backing.", + "readOnly": true, + "example": "s-2vcpu-2gb", + "nullable": true + }, + "replicas": { + "type": "integer", + "description": "Number of secondary high availability replicas, excluding the primary. Null when backing configuration is unavailable.", + "format": "int32", + "readOnly": true, + "example": 0, + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message when the dedicated backing failed. Null when the database has no dedicated backing or has not failed.", + "readOnly": true, + "example": "", + "nullable": true + }, + "containerStatus": { + "type": "string", + "description": "Container status of the dedicated backing: active, inactive, or failed (a wake was declined because the backing namespace is gone). Null when the database has no dedicated backing or the runtime has not reported one.", + "readOnly": true, + "example": "active", + "nullable": true + }, + "lifecycleState": { + "type": "string", + "description": "Idle-lifecycle state of the dedicated backing: active, warm, cold, or hibernated. Null when the database has no dedicated backing or the runtime has not reported one.", + "readOnly": true, + "example": "active", + "nullable": true + }, + "policies": { + "type": "array", + "description": "Database backup policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "example": [], + "nullable": true + }, + "archives": { + "type": "array", + "description": "Database backup archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "enabled", + "type" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "My Database", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "enabled": false, + "type": "legacy", + "status": "ready", + "engine": "postgresql", + "specification": "s-2vcpu-2gb", + "replicas": 0, + "error": "", + "containerStatus": "active", + "lifecycleState": "active", + "policies": {}, + "archives": {} + } + }, + "embedding": { + "description": "Embedding", + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "Embedding model used to generate embeddings.", + "example": "nomic-embed-text" + }, + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "format": "int32", + "example": 768 + }, + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "example": [ + 0.01, + 0.02, + 0.03 + ] + }, + "error": { + "type": "string", + "description": "Error message if embedding generation fails. Empty string if no error.", + "example": "Error message" + } + }, + "required": [ + "model", + "dimension", + "embedding", + "error" + ], + "example": { + "model": "nomic-embed-text", + "dimension": 768, + "embedding": [ + 0.01, + 0.02, + 0.03 + ], + "error": "Error message" + } + }, + "collection": { + "description": "Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "format": "int32", + "example": 1500 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 + } + }, + "attributeList": { + "description": "Attributes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of attributes in the given collection.", + "format": "int32", + "example": 5 + }, + "attributes": { + "type": "array", + "description": "List of attributes.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + } + }, + "required": [ + "total", + "attributes" + ], + "example": { + "total": 5, + "attributes": "" + } + }, + "attributeString": { + "description": "AttributeString", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeInteger": { + "description": "AttributeInteger", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "integer" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "int32", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "integer", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "attributeBigint": { + "description": "AttributeBigInt", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "bigint" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "int64", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "bigint", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "attributeFloat": { + "description": "AttributeFloat", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "percentageCompleted" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "double" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "format": "double", + "example": 1.5, + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "format": "double", + "example": 10.5, + "nullable": true + }, + "default": { + "type": "number", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "double", + "example": 2.5, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "percentageCompleted", + "type": "double", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1.5, + "max": 10.5, + "default": 2.5 + } + }, + "attributeBoolean": { + "description": "AttributeBoolean", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "isEnabled" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "boolean" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "boolean", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "isEnabled", + "type": "boolean", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": false + } + }, + "attributeEmail": { + "description": "AttributeEmail", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "userEmail" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "email" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default@example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "userEmail", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "email", + "default": "default@example.com" + } + }, + "attributeEnum": { + "description": "AttributeEnum", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "status" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "example": [ + "element" + ] + }, + "format": { + "type": "string", + "description": "String format.", + "example": "enum" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "element", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "elements", + "format" + ], + "example": { + "key": "status", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "elements": "element", + "format": "enum", + "default": "element" + } + }, + "attributeIp": { + "description": "AttributeIP", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "ipAddress" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "192.0.2.0", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "ipAddress", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" + } + }, + "attributeUrl": { + "description": "AttributeURL", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "githubUrl" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "url" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "http:\/\/example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "githubUrl", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "url", + "default": "http:\/\/example.com" + } + }, + "attributeDatetime": { + "description": "AttributeDatetime", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "birthDay" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "datetime" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Only null is optional", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "birthDay", + "type": "datetime", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeRelationship": { + "description": "AttributeRelationship", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "relatedCollection": { + "type": "string", + "description": "The ID of the related collection.", + "example": "collection" + }, + "relationType": { + "type": "string", + "description": "The type of the relationship.", + "example": "oneToOne|oneToMany|manyToOne|manyToMany" + }, + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "example": "parent|child" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "relatedCollection", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "relatedCollection": "collection", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" + } + }, + "attributePoint": { + "description": "AttributePoint", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + 0, + 0 + ] + } + }, + "attributeLine": { + "description": "AttributeLine", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ] + } + }, + "attributePolygon": { + "description": "AttributePolygon", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "attributeVarchar": { + "description": "AttributeVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeText": { + "description": "AttributeText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeMediumtext": { + "description": "AttributeMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeLongtext": { + "description": "AttributeLongtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "vectorsdbCollection": { + "description": "VectorsDB Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeObject" + }, + { + "$ref": "#\/components\/schemas\/attributeVector" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "object": "#\/components\/schemas\/attributeObject", + "vector": "#\/components\/schemas\/attributeVector" + } + } + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "format": "int32", + "example": 1500 + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "format": "int32", + "example": 1536 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 + } + }, + "attributeObject": { + "description": "AttributeObject", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeVector": { + "description": "AttributeVector", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Vector dimensions.", + "format": "int32", + "example": 1536 + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 1536 + } + }, + "table": { + "description": "Table", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Table ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Table creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Table update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Table permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Table name.", + "example": "My Table" + }, + "enabled": { + "type": "boolean", + "description": "Table enabled. Can be 'enabled' or 'disabled'. When disabled, the table is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "rowSecurity": { + "type": "boolean", + "description": "Whether row-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "columns": { + "type": "array", + "description": "Table columns.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Table indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum row size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used row size in bytes based on defined columns.", + "format": "int32", + "example": 1500 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "rowSecurity", + "columns", + "indexes", + "bytesMax", + "bytesUsed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Table", + "enabled": false, + "rowSecurity": true, + "columns": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 + } + }, + "columnList": { + "description": "Columns List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of columns in the given table.", + "format": "int32", + "example": 5 + }, + "columns": { + "type": "array", + "description": "List of columns.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + } + }, + "required": [ + "total", + "columns" + ], + "example": { + "total": 5, + "columns": "" + } + }, + "columnString": { + "description": "ColumnString", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Column size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "columnInteger": { + "description": "ColumnInteger", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "integer" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "int32", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "integer", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "columnBigint": { + "description": "ColumnBigInt", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "bigint" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "int64", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "bigint", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "columnFloat": { + "description": "ColumnFloat", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "percentageCompleted" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "double" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "format": "double", + "example": 1.5, + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "format": "double", + "example": 10.5, + "nullable": true + }, + "default": { + "type": "number", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "double", + "example": 2.5, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "percentageCompleted", + "type": "double", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1.5, + "max": 10.5, + "default": 2.5 + } + }, + "columnBoolean": { + "description": "ColumnBoolean", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "isEnabled" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "boolean" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "isEnabled", + "type": "boolean", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": false + } + }, + "columnEmail": { + "description": "ColumnEmail", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "userEmail" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "email" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default@example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "userEmail", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "email", + "default": "default@example.com" + } + }, + "columnEnum": { + "description": "ColumnEnum", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "status" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "example": [ + "element" + ] + }, + "format": { + "type": "string", + "description": "String format.", + "example": "enum" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "element", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "elements", + "format" + ], + "example": { + "key": "status", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "elements": "element", + "format": "enum", + "default": "element" + } + }, + "columnIp": { + "description": "ColumnIP", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "ipAddress" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "192.0.2.0", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "ipAddress", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" + } + }, + "columnUrl": { + "description": "ColumnURL", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "githubUrl" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "url" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "https:\/\/example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "githubUrl", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "url", + "default": "https:\/\/example.com" + } + }, + "columnDatetime": { + "description": "ColumnDatetime", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "birthDay" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "datetime" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Only null is optional", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "birthDay", + "type": "datetime", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" + } + }, + "columnRelationship": { + "description": "ColumnRelationship", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "relatedTable": { + "type": "string", + "description": "The ID of the related table.", + "example": "table" + }, + "relationType": { + "type": "string", + "description": "The type of the relationship.", + "example": "oneToOne|oneToMany|manyToOne|manyToMany" + }, + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "example": "parent|child" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "relatedTable", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "relatedTable": "table", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" + } + }, + "columnPoint": { + "description": "ColumnPoint", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + 0, + 0 + ] + } + }, + "columnLine": { + "description": "ColumnLine", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ] + } + }, + "columnPolygon": { + "description": "ColumnPolygon", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "columnVarchar": { + "description": "ColumnVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Column size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "columnText": { + "description": "ColumnText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "columnMediumtext": { + "description": "ColumnMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "columnLongtext": { + "description": "ColumnLongtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "index": { + "description": "Index", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Index ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Index creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Index update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Index key.", + "example": "index1" + }, + "type": { + "type": "string", + "description": "Index type.", + "example": "primary" + }, + "status": { + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "example": "string" + }, + "attributes": { + "type": "array", + "description": "Index attributes.", + "items": { + "type": "string" + }, + "example": [] + }, + "lengths": { + "type": "array", + "description": "Index attributes length.", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [] + }, + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "type", + "status", + "error", + "attributes", + "lengths" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "index1", + "type": "primary", + "status": "available", + "error": "string", + "attributes": [], + "lengths": [], + "orders": [] + } + }, + "columnIndex": { + "description": "Index", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Index ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Index creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Index update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Index Key.", + "example": "index1" + }, + "type": { + "type": "string", + "description": "Index type.", + "example": "primary" + }, + "status": { + "type": "string", + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "example": "string" + }, + "columns": { + "type": "array", + "description": "Index columns.", + "items": { + "type": "string" + }, + "example": [] + }, + "lengths": { + "type": "array", + "description": "Index columns length.", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [] + }, + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "type", + "status", + "error", + "columns", + "lengths" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "index1", + "type": "primary", + "status": "available", + "error": "string", + "columns": [], + "lengths": [], + "orders": [] + } + }, + "row": { + "description": "Row", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Row ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Row sequence ID.", + "readOnly": true, + "example": "1" + }, + "$tableId": { + "type": "string", + "description": "Table ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Row creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Row update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$tableId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$tableId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ] + } + }, + "document": { + "description": "Document", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Document ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Document sequence ID.", + "readOnly": true, + "example": "1" + }, + "$collectionId": { + "type": "string", + "description": "Collection ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Document creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Document update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$collectionId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$collectionId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "username": "john.doe", + "email": "john.doe@example.com", + "fullName": "John Doe", + "age": 30, + "isAdmin": false + } + }, + "presence": { + "description": "Presence", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Presence ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Presence creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Presence update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "674af8f3e12a5f9ac0be" + }, + "status": { + "type": "string", + "description": "Presence status.", + "example": "online", + "nullable": true + }, + "source": { + "type": "string", + "description": "Presence source.", + "example": "HTTP" + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "metadata": { + "type": "object", + "additionalProperties": true, + "description": "Presence metadata.", + "example": { + "key": "value" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "userId", + "source" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "userId": "674af8f3e12a5f9ac0be", + "status": "online", + "source": "HTTP", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "metadata": { + "key": "value" + } + } + }, + "user": { + "description": "User", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "password": { + "type": "string", + "description": "Hashed user password.", + "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "nullable": true + }, + "hash": { + "type": "string", + "description": "Password hashing algorithm.", + "example": "argon2", + "nullable": true + }, + "hashOptions": { + "type": "object", + "description": "Password hashing algorithm configuration.", + "example": {}, + "allOf": [ + { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/algoArgon2" + }, + { + "$ref": "#\/components\/schemas\/algoScrypt" + }, + { + "$ref": "#\/components\/schemas\/algoScryptModified" + }, + { + "$ref": "#\/components\/schemas\/algoBcrypt" + }, + { + "$ref": "#\/components\/schemas\/algoPhpass" + }, + { + "$ref": "#\/components\/schemas\/algoSha" + }, + { + "$ref": "#\/components\/schemas\/algoMd5" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "argon2": "#\/components\/schemas\/algoArgon2", + "scrypt": "#\/components\/schemas\/algoScrypt", + "scryptMod": "#\/components\/schemas\/algoScryptModified", + "bcrypt": "#\/components\/schemas\/algoBcrypt", + "phpass": "#\/components\/schemas\/algoPhpass", + "sha": "#\/components\/schemas\/algoSha", + "md5": "#\/components\/schemas\/algoMd5" + } + } + } + ], + "nullable": true + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "hash": "argon2", + "hashOptions": {}, + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "algoMd5": { + "description": "AlgoMD5", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "md5" + } + }, + "required": [ + "type" + ], + "example": { + "type": "md5" + } + }, + "algoSha": { + "description": "AlgoSHA", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "sha" + } + }, + "required": [ + "type" + ], + "example": { + "type": "sha" + } + }, + "algoPhpass": { + "description": "AlgoPHPass", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "phpass" + } + }, + "required": [ + "type" + ], + "example": { + "type": "phpass" + } + }, + "algoBcrypt": { + "description": "AlgoBcrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "bcrypt" + } + }, + "required": [ + "type" + ], + "example": { + "type": "bcrypt" + } + }, + "algoScrypt": { + "description": "AlgoScrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scrypt" + }, + "costCpu": { + "type": "integer", + "description": "CPU complexity of computed hash.", + "format": "int32", + "example": 8 + }, + "costMemory": { + "type": "integer", + "description": "Memory complexity of computed hash.", + "format": "int32", + "example": 14 + }, + "costParallel": { + "type": "integer", + "description": "Parallelization of computed hash.", + "format": "int32", + "example": 1 + }, + "length": { + "type": "integer", + "description": "Length used to compute hash.", + "format": "int32", + "example": 64 + } + }, + "required": [ + "type", + "costCpu", + "costMemory", + "costParallel", + "length" + ], + "example": { + "type": "scrypt", + "costCpu": 8, + "costMemory": 14, + "costParallel": 1, + "length": 64 + } + }, + "algoScryptModified": { + "description": "AlgoScryptModified", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scryptMod" + }, + "salt": { + "type": "string", + "description": "Salt used to compute hash.", + "example": "UxLMreBr6tYyjQ==" + }, + "saltSeparator": { + "type": "string", + "description": "Separator used to compute hash.", + "example": "Bw==" + }, + "signerKey": { + "type": "string", + "description": "Key used to compute hash.", + "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "required": [ + "type", + "salt", + "saltSeparator", + "signerKey" + ], + "example": { + "type": "scryptMod", + "salt": "UxLMreBr6tYyjQ==", + "saltSeparator": "Bw==", + "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "algoArgon2": { + "description": "AlgoArgon2", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "argon2" + }, + "memoryCost": { + "type": "integer", + "description": "Memory used to compute hash.", + "format": "int32", + "example": 65536 + }, + "timeCost": { + "type": "integer", + "description": "Amount of time consumed to compute hash", + "format": "int32", + "example": 4 + }, + "threads": { + "type": "integer", + "description": "Number of threads used to compute hash.", + "format": "int32", + "example": 3 + } + }, + "required": [ + "type", + "memoryCost", + "timeCost", + "threads" + ], + "example": { + "type": "argon2", + "memoryCost": 65536, + "timeCost": 4, + "threads": 3 + } + }, + "account": { + "description": "Account", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "preferences": { + "description": "Preferences", + "type": "object", + "additionalProperties": true, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + }, + "session": { + "description": "Session", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Session ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Session creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Session update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "expire": { + "type": "string", + "description": "Session expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "provider": { + "type": "string", + "description": "Session Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "Session Provider User ID.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Session Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Session Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "ip": { + "type": "string", + "description": "IP in use when the session was created.", + "example": "127.0.0.1" + }, + "osCode": { + "type": "string", + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "example": "Mac" + }, + "osName": { + "type": "string", + "description": "Operating system name.", + "example": "Mac" + }, + "osVersion": { + "type": "string", + "description": "Operating system version.", + "example": "Mac" + }, + "clientType": { + "type": "string", + "description": "Client type.", + "example": "browser" + }, + "clientCode": { + "type": "string", + "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", + "example": "CM" + }, + "clientName": { + "type": "string", + "description": "Client name.", + "example": "Chrome Mobile iOS" + }, + "clientVersion": { + "type": "string", + "description": "Client version.", + "example": "84.0" + }, + "clientEngine": { + "type": "string", + "description": "Client engine name.", + "example": "WebKit" + }, + "clientEngineVersion": { + "type": "string", + "description": "Client engine name.", + "example": "605.1.15" + }, + "deviceName": { + "type": "string", + "description": "Device name.", + "example": "smartphone" + }, + "deviceBrand": { + "type": "string", + "description": "Device brand name.", + "example": "Google" + }, + "deviceModel": { + "type": "string", + "description": "Device model name.", + "example": "Nexus 5" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "current": { + "type": "boolean", + "description": "Returns true if this the current user session.", + "example": true + }, + "factors": { + "type": "array", + "description": "Returns a list of active session factors.", + "items": { + "type": "string" + }, + "example": [ + "email" + ] + }, + "secret": { + "type": "string", + "description": "Secret used to authenticate the user. Only included if the request was made with an API key", + "example": "5e5bb8c16897e" + }, + "mfaUpdatedAt": { + "type": "string", + "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "expire", + "provider", + "providerUid", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "ip", + "osCode", + "osName", + "osVersion", + "clientType", + "clientCode", + "clientName", + "clientVersion", + "clientEngine", + "clientEngineVersion", + "deviceName", + "deviceBrand", + "deviceModel", + "countryCode", + "countryName", + "current", + "factors", + "secret", + "mfaUpdatedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "provider": "email", + "providerUid": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "ip": "127.0.0.1", + "osCode": "Mac", + "osName": "Mac", + "osVersion": "Mac", + "clientType": "browser", + "clientCode": "CM", + "clientName": "Chrome Mobile iOS", + "clientVersion": "84.0", + "clientEngine": "WebKit", + "clientEngineVersion": "605.1.15", + "deviceName": "smartphone", + "deviceBrand": "Google", + "deviceModel": "Nexus 5", + "countryCode": "US", + "countryName": "United States", + "current": true, + "factors": [ + "email" + ], + "secret": "5e5bb8c16897e", + "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "identity": { + "description": "Identity", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Identity ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Identity creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Identity update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "provider": { + "type": "string", + "description": "Identity Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "ID of the User in the Identity Provider.", + "example": "5e5bb8c16897e" + }, + "providerEmail": { + "type": "string", + "description": "Email of the User in the Identity Provider.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Identity Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Identity Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerIdToken": { + "type": "string", + "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", + "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "provider", + "providerUid", + "providerEmail", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "providerIdToken" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "provider": "email", + "providerUid": "5e5bb8c16897e", + "providerEmail": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "notification": { + "description": "Notification", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Notification ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Notification creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Notification update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "messageId": { + "type": "string", + "description": "Stable message ID used for dedup.", + "example": "session.create", + "nullable": true + }, + "type": { + "type": "string", + "description": "Notification type: info, warning, error.", + "example": "info" + }, + "channel": { + "type": "string", + "description": "Channel: email, sms, push, console, webhook.", + "example": "email" + }, + "resourceType": { + "type": "string", + "description": "Resource type this notification is addressed to.", + "example": "users" + }, + "resourceId": { + "type": "string", + "description": "Resource ID this notification is addressed to.", + "example": "5e5bb8c16897e" + }, + "parentResourceType": { + "type": "string", + "description": "Parent resource type for the notification.", + "example": "projects" + }, + "parentResourceId": { + "type": "string", + "description": "Parent resource ID for the notification.", + "example": "5e5bb8c16897e" + }, + "projectId": { + "type": "string", + "description": "Project the notification pertains to.", + "example": "5e5bb8c16897e", + "nullable": true + }, + "title": { + "type": "string", + "description": "Notification title.", + "example": "New sign-in detected" + }, + "body": { + "type": "string", + "description": "Notification body.", + "example": "A new device signed in to your account." + }, + "read": { + "type": "boolean", + "description": "Whether the notification has been read.", + "example": false, + "nullable": true + }, + "firstSeen": { + "type": "string", + "description": "First time the notification was viewed from a notification logo.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "lastSeen": { + "type": "string", + "description": "Most recent time the notification was viewed from a notification logo.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "channel", + "resourceType", + "resourceId", + "parentResourceType", + "parentResourceId", + "title", + "body" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "messageId": "session.create", + "type": "info", + "channel": "email", + "resourceType": "users", + "resourceId": "5e5bb8c16897e", + "parentResourceType": "projects", + "parentResourceId": "5e5bb8c16897e", + "projectId": "5e5bb8c16897e", + "title": "New sign-in detected", + "body": "A new device signed in to your account.", + "read": false, + "firstSeen": "2020-10-15T06:38:00.000+00:00", + "lastSeen": "2020-10-15T06:38:00.000+00:00" + } + }, + "token": { + "description": "Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "jwt": { + "description": "JWT", + "type": "object", + "properties": { + "jwt": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "jwt" + ], + "example": { + "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "locale": { + "description": "Locale", + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "User IP address.", + "example": "127.0.0.1" + }, + "countryCode": { + "type": "string", + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", + "example": "US" + }, + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "example": "United States" + }, + "continentCode": { + "type": "string", + "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", + "example": "NA" + }, + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "example": "North America" + }, + "eu": { + "type": "boolean", + "description": "True if country is part of the European Union.", + "example": false + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "example": "USD" + }, + "city": { + "type": "string", + "description": "City", + "example": "Kathmandu", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Name of timezone", + "example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) of the IP", + "example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN", + "example": "GOOGLE", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider of the IP", + "example": "Google", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP", + "example": "Google LLC", + "nullable": true + } + }, + "required": [ + "ip", + "countryCode", + "country", + "continentCode", + "continent", + "eu", + "currency" + ], + "example": { + "ip": "127.0.0.1", + "countryCode": "US", + "country": "United States", + "continentCode": "NA", + "continent": "North America", + "eu": false, + "currency": "USD", + "city": "Kathmandu", + "timeZone": "Asia\/Kathmandu", + "postalCode": "44600", + "latitude": "82.345", + "longitude": "82.345", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "isp": "Google", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC" + } + }, + "localeCode": { + "description": "LocaleCode", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", + "example": "en-us" + }, + "name": { + "type": "string", + "description": "Locale name", + "example": "US" + } + }, + "required": [ + "code", + "name" + ], + "example": { + "code": "en-us", + "name": "US" + } + }, + "file": { + "description": "File", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "File ID.", + "example": "5e5ea5c16897e" + }, + "bucketId": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "File creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "File update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "name": { + "type": "string", + "description": "File name.", + "example": "Pink.png" + }, + "folder": { + "type": "string", + "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", + "example": "photos\/2026\/" + }, + "key": { + "type": "string", + "description": "Full virtual path of the file: the folder followed by the file name.", + "example": "photos\/2026\/Pink.png" + }, + "signature": { + "type": "string", + "description": "File MD5 signature.", + "example": "5d529fd02b544198ae075bd57c1762bb" + }, + "mimeType": { + "type": "string", + "description": "File mime type.", + "example": "image\/png" + }, + "sizeOriginal": { + "type": "integer", + "description": "File original size in bytes.", + "format": "int32", + "example": 17890 + }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "format": "int32", + "example": 12345 + }, + "chunksTotal": { + "type": "integer", + "description": "Total number of chunks available", + "format": "int32", + "example": 17890 + }, + "chunksUploaded": { + "type": "integer", + "description": "Total number of chunks uploaded", + "format": "int32", + "example": 17890 + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + } + }, + "required": [ + "$id", + "bucketId", + "$createdAt", + "$updatedAt", + "$permissions", + "name", + "folder", + "key", + "signature", + "mimeType", + "sizeOriginal", + "sizeActual", + "chunksTotal", + "chunksUploaded", + "encryption", + "compression" + ], + "example": { + "$id": "5e5ea5c16897e", + "bucketId": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "name": "Pink.png", + "folder": "photos\/2026\/", + "key": "photos\/2026\/Pink.png", + "signature": "5d529fd02b544198ae075bd57c1762bb", + "mimeType": "image\/png", + "sizeOriginal": 17890, + "sizeActual": 12345, + "chunksTotal": 17890, + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" + } + }, + "bucket": { + "description": "Bucket", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Bucket creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Bucket update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Bucket permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "fileSecurity": { + "type": "boolean", + "description": "Whether file-level security is enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "name": { + "type": "string", + "description": "Bucket name.", + "example": "Documents" + }, + "enabled": { + "type": "boolean", + "description": "Bucket enabled.", + "example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size supported.", + "format": "int32", + "example": 100 + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions.", + "items": { + "type": "string" + }, + "example": [ + "jpg", + "png" + ] + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + }, + "encryption": { + "type": "boolean", + "description": "Bucket is encrypted.", + "example": false + }, + "antivirus": { + "type": "boolean", + "description": "Virus scanning is enabled.", + "example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "example": false + }, + "totalSize": { + "type": "integer", + "description": "Total size of this bucket in bytes.", + "format": "int32", + "example": 128 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "fileSecurity", + "name", + "enabled", + "maximumFileSize", + "allowedFileExtensions", + "compression", + "encryption", + "antivirus", + "transformations", + "totalSize" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "fileSecurity": true, + "name": "Documents", + "enabled": false, + "maximumFileSize": 100, + "allowedFileExtensions": [ + "jpg", + "png" + ], + "compression": "gzip", + "encryption": false, + "antivirus": false, + "transformations": false, + "totalSize": 128 + } + }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "files" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceType", + "expire", + "secret", + "accessedAt" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceId": "5e5ea5c168bb8:5e5ea5c168bb8", + "resourceType": "files", + "expire": "2020-10-15T06:38:00.000+00:00", + "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", + "accessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "team": { + "description": "Team", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + } + } + }, + "membership": { + "description": "Membership", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Membership ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Membership creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Membership update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User name. Hide this attribute by toggling membership privacy in the Console.", + "example": "John Doe" + }, + "userEmail": { + "type": "string", + "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", + "example": "john@appwrite.io" + }, + "userPhone": { + "type": "string", + "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", + "example": "+1 555 555 5555" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "teamName": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "invited": { + "type": "string", + "description": "Date, the user has been invited to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "joined": { + "type": "string", + "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "confirm": { + "type": "boolean", + "description": "User confirmation status, true if the user has joined the team or false otherwise.", + "example": false + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", + "example": false + }, + "userAccessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "roles": { + "type": "array", + "description": "User list of roles", + "items": { + "type": "string" + }, + "example": [ + "owner" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "userName", + "userEmail", + "userPhone", + "teamId", + "teamName", + "invited", + "joined", + "confirm", + "mfa", + "userAccessedAt", + "roles" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "userName": "John Doe", + "userEmail": "john@appwrite.io", + "userPhone": "+1 555 555 5555", + "teamId": "5e5ea5c16897e", + "teamName": "VIP", + "invited": "2020-10-15T06:38:00.000+00:00", + "joined": "2020-10-15T06:38:00.000+00:00", + "confirm": false, + "mfa": false, + "userAccessedAt": "2020-10-15T06:38:00.000+00:00", + "roles": [ + "owner" + ] + } + }, + "site": { + "description": "Site", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Site ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Site creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Site update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Site name.", + "example": "My Site" + }, + "enabled": { + "type": "boolean", + "description": "Site enabled.", + "example": false + }, + "live": { + "type": "boolean", + "description": "Is the site deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the site to update it with the latest configuration.", + "example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "example": false + }, + "framework": { + "type": "string", + "description": "Site framework.", + "example": "react" + }, + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "deploymentId": { + "type": "string", + "description": "Site's active deployment ID.", + "example": "5e5ea5c16897e" + }, + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "deploymentScreenshotLight": { + "type": "string", + "description": "Screenshot of active deployment with light theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "deploymentScreenshotDark": { + "type": "string", + "description": "Screenshot of active deployment with dark theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentId": { + "type": "string", + "description": "Site's latest deployment ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentStatus": { + "type": "string", + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "example": "ready" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "vars": { + "type": "array", + "description": "Site variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + }, + "timeout": { + "type": "integer", + "description": "Site request timeout in seconds.", + "format": "int32", + "example": 300 + }, + "installCommand": { + "type": "string", + "description": "The install command used to install the site dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "The build command used to build the site.", + "example": "npm run build" + }, + "startCommand": { + "type": "string", + "description": "Custom command to use when starting site runtime.", + "example": "node custom-server.mjs" + }, + "outputDirectory": { + "type": "string", + "description": "The directory where the site build output is located.", + "example": "build" + }, + "installationId": { + "type": "string", + "description": "Site VCS (Version Control System) installation id.", + "example": "6m40at4ejk5h2u9s1hboo" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "appwrite" + }, + "providerBranch": { + "type": "string", + "description": "VCS (Version Control System) branch name", + "example": "main" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site in VCS (Version Control System) repository", + "example": "sites\/helloWorld" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", + "example": false + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { + "type": "string", + "description": "Machine specification for deployment builds.", + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "type": "string", + "description": "Machine specification for SSR executions.", + "example": "s-1vcpu-512mb" + }, + "buildRuntime": { + "type": "string", + "description": "Site build runtime.", + "example": "node-22" + }, + "adapter": { + "type": "string", + "description": "Site framework adapter.", + "example": "static" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "example": "index.html" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "enabled", + "live", + "logging", + "framework", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "deploymentScreenshotLight", + "deploymentScreenshotDark", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "timeout", + "installCommand", + "buildCommand", + "startCommand", + "outputDirectory", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification", + "buildRuntime", + "adapter", + "fallbackFile" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Site", + "enabled": false, + "live": false, + "logging": false, + "framework": "react", + "deploymentRetention": 7, + "deploymentId": "5e5ea5c16897e", + "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "deploymentScreenshotLight": "5e5ea5c16897e", + "deploymentScreenshotDark": "5e5ea5c16897e", + "latestDeploymentId": "5e5ea5c16897e", + "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentStatus": "ready", + "scopes": "users.read", + "vars": [], + "timeout": 300, + "installCommand": "npm install", + "buildCommand": "npm run build", + "startCommand": "node custom-server.mjs", + "outputDirectory": "build", + "installationId": "6m40at4ejk5h2u9s1hboo", + "providerRepositoryId": "appwrite", + "providerBranch": "main", + "providerRootDirectory": "sites\/helloWorld", + "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], + "buildSpecification": "s-1vcpu-512mb", + "runtimeSpecification": "s-1vcpu-512mb", + "buildRuntime": "node-22", + "adapter": "static", + "fallbackFile": "index.html" + } + }, + "templateSite": { + "description": "Template Site", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Site Template ID.", + "example": "starter" + }, + "name": { + "type": "string", + "description": "Site Template Name.", + "example": "Starter site" + }, + "tagline": { + "type": "string", + "description": "Short description of template", + "example": "Minimal web app integrating with Appwrite." + }, + "demoUrl": { + "type": "string", + "description": "URL hosting a template demo.", + "example": "https:\/\/nextjs-starter.appwrite.network\/", + "nullable": true + }, + "screenshotDark": { + "type": "string", + "description": "File URL with preview screenshot in dark theme preference.", + "example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png" + }, + "screenshotLight": { + "type": "string", + "description": "File URL with preview screenshot in light theme preference.", + "example": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png" + }, + "useCases": { + "type": "array", + "description": "Site use cases.", + "items": { + "type": "string" + }, + "example": [ + "Starter" + ] + }, + "frameworks": { + "type": "array", + "description": "List of frameworks that can be used with this template.", + "items": { + "$ref": "#\/components\/schemas\/templateFramework" + }, + "example": [] + }, + "vcsProvider": { + "type": "string", + "description": "VCS (Version Control System) Provider.", + "example": "github" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "templates" + }, + "providerOwner": { + "type": "string", + "description": "VCS (Version Control System) Owner.", + "example": "appwrite" + }, + "providerVersion": { + "type": "string", + "description": "VCS (Version Control System) branch version (tag).", + "example": "main" + }, + "variables": { + "type": "array", + "description": "Site variables.", + "items": { + "$ref": "#\/components\/schemas\/templateVariable" + }, + "example": [] + } + }, + "required": [ + "key", + "name", + "tagline", + "screenshotDark", + "screenshotLight", + "useCases", + "frameworks", + "vcsProvider", + "providerRepositoryId", + "providerOwner", + "providerVersion", + "variables" + ], + "example": { + "key": "starter", + "name": "Starter site", + "tagline": "Minimal web app integrating with Appwrite.", + "demoUrl": "https:\/\/nextjs-starter.appwrite.network\/", + "screenshotDark": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-dark.png", + "screenshotLight": "https:\/\/cloud.appwrite.io\/images\/sites\/templates\/template-for-blog-light.png", + "useCases": "Starter", + "frameworks": [], + "vcsProvider": "github", + "providerRepositoryId": "templates", + "providerOwner": "appwrite", + "providerVersion": "main", + "variables": [] + } + }, + "templateFramework": { + "description": "Template Framework", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Parent framework key.", + "example": "sveltekit" + }, + "name": { + "type": "string", + "description": "Framework Name.", + "example": "SvelteKit" + }, + "installCommand": { + "type": "string", + "description": "The install command used to install the dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "The build command used to build the deployment.", + "example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "The output directory to store the build output.", + "example": ".\/build" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site in VCS (Version Control System) repository", + "example": ".\/svelte-kit\/starter" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime used during build step of template.", + "example": "node-22" + }, + "adapter": { + "type": "string", + "description": "Site framework runtime", + "example": "ssr" + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for SPA. Only relevant for static serve runtime.", + "example": "index.html", + "nullable": true + } + }, + "required": [ + "key", + "name", + "installCommand", + "buildCommand", + "outputDirectory", + "providerRootDirectory", + "buildRuntime", + "adapter" + ], + "example": { + "key": "sveltekit", + "name": "SvelteKit", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": ".\/build", + "providerRootDirectory": ".\/svelte-kit\/starter", + "buildRuntime": "node-22", + "adapter": "ssr", + "fallbackFile": "index.html" + } + }, + "function": { + "description": "Function", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Function ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Function creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Function update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "execute": { + "type": "array", + "description": "Execution permissions.", + "items": { + "type": "string" + }, + "example": [ + "users" + ] + }, + "name": { + "type": "string", + "description": "Function name.", + "example": "My Function" + }, + "enabled": { + "type": "boolean", + "description": "Function enabled.", + "example": false + }, + "live": { + "type": "boolean", + "description": "Is the function deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the function to update it with the latest configuration.", + "example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "example": false + }, + "runtime": { + "type": "string", + "description": "Function execution and build runtime.", + "example": "python-3.8" + }, + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "deploymentId": { + "type": "string", + "description": "Function's active deployment ID.", + "example": "5e5ea5c16897e" + }, + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentId": { + "type": "string", + "description": "Function's latest deployment ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentStatus": { + "type": "string", + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "example": "ready" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "vars": { + "type": "array", + "description": "Function variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + }, + "events": { + "type": "array", + "description": "Function trigger events.", + "items": { + "type": "string" + }, + "example": [ + "account.create" + ] + }, + "schedule": { + "type": "string", + "description": "Function execution schedule in CRON format.", + "example": "5 4 * * *" + }, + "timeout": { + "type": "integer", + "description": "Function execution timeout in seconds.", + "format": "int32", + "example": 300 + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file used to execute the deployment.", + "example": "index.js" + }, + "commands": { + "type": "string", + "description": "The build command used to build the deployment.", + "example": "npm install" + }, + "version": { + "type": "string", + "description": "Version of Open Runtimes used for the function.", + "example": "v2" + }, + "installationId": { + "type": "string", + "description": "Function VCS (Version Control System) installation id.", + "example": "6m40at4ejk5h2u9s1hboo" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "appwrite" + }, + "providerBranch": { + "type": "string", + "description": "VCS (Version Control System) branch name", + "example": "main" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function in VCS (Version Control System) repository", + "example": "functions\/helloWorld" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", + "example": false + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { + "type": "string", + "description": "Machine specification for deployment builds.", + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "type": "string", + "description": "Machine specification for executions.", + "example": "s-1vcpu-512mb" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "execute", + "name", + "enabled", + "live", + "logging", + "runtime", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "events", + "schedule", + "timeout", + "entrypoint", + "commands", + "version", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "execute": "users", + "name": "My Function", + "enabled": false, + "live": false, + "logging": false, + "runtime": "python-3.8", + "deploymentRetention": 7, + "deploymentId": "5e5ea5c16897e", + "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentId": "5e5ea5c16897e", + "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentStatus": "ready", + "scopes": "users.read", + "vars": [], + "events": "account.create", + "schedule": "5 4 * * *", + "timeout": 300, + "entrypoint": "index.js", + "commands": "npm install", + "version": "v2", + "installationId": "6m40at4ejk5h2u9s1hboo", + "providerRepositoryId": "appwrite", + "providerBranch": "main", + "providerRootDirectory": "functions\/helloWorld", + "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], + "buildSpecification": "s-1vcpu-512mb", + "runtimeSpecification": "s-1vcpu-512mb" + } + }, + "templateFunction": { + "description": "Template Function", + "type": "object", + "properties": { + "icon": { + "type": "string", + "description": "Function Template Icon.", + "example": "icon-lightning-bolt" + }, + "id": { + "type": "string", + "description": "Function Template ID.", + "example": "starter" + }, + "name": { + "type": "string", + "description": "Function Template Name.", + "example": "Starter function" + }, + "tagline": { + "type": "string", + "description": "Function Template Tagline.", + "example": "A simple function to get started." + }, + "permissions": { + "type": "array", + "description": "Execution permissions.", + "items": { + "type": "string" + }, + "example": [ + "any" + ] + }, + "events": { + "type": "array", + "description": "Function trigger events.", + "items": { + "type": "string" + }, + "example": [ + "account.create" + ] + }, + "cron": { + "type": "string", + "description": "Function execution schedult in CRON format.", + "example": "0 0 * * *" + }, + "timeout": { + "type": "integer", + "description": "Function execution timeout in seconds.", + "format": "int32", + "example": 300 + }, + "useCases": { + "type": "array", + "description": "Function use cases.", + "items": { + "type": "string" + }, + "example": [ + "Starter" + ] + }, + "runtimes": { + "type": "array", + "description": "List of runtimes that can be used with this template.", + "items": { + "$ref": "#\/components\/schemas\/templateRuntime" + }, + "example": [] + }, + "instructions": { + "type": "string", + "description": "Function Template Instructions.", + "example": "For documentation and instructions check out <link>." + }, + "vcsProvider": { + "type": "string", + "description": "VCS (Version Control System) Provider.", + "example": "github" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "templates" + }, + "providerOwner": { + "type": "string", + "description": "VCS (Version Control System) Owner.", + "example": "appwrite" + }, + "providerVersion": { + "type": "string", + "description": "VCS (Version Control System) branch version (tag).", + "example": "main" + }, + "variables": { + "type": "array", + "description": "Function variables.", + "items": { + "$ref": "#\/components\/schemas\/templateVariable" + }, + "example": [] + }, + "scopes": { + "type": "array", + "description": "Function scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + } + }, + "required": [ + "icon", + "id", + "name", + "tagline", + "permissions", + "events", + "cron", + "timeout", + "useCases", + "runtimes", + "instructions", + "vcsProvider", + "providerRepositoryId", + "providerOwner", + "providerVersion", + "variables", + "scopes" + ], + "example": { + "icon": "icon-lightning-bolt", + "id": "starter", + "name": "Starter function", + "tagline": "A simple function to get started.", + "permissions": "any", + "events": "account.create", + "cron": "0 0 * * *", + "timeout": 300, + "useCases": "Starter", + "runtimes": [], + "instructions": "For documentation and instructions check out <link>.", + "vcsProvider": "github", + "providerRepositoryId": "templates", + "providerOwner": "appwrite", + "providerVersion": "main", + "variables": [], + "scopes": "users.read" + } + }, + "templateRuntime": { + "description": "Template Runtime", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Runtime Name.", + "example": "node-19.0" + }, + "commands": { + "type": "string", + "description": "The build command used to build the deployment.", + "example": "npm install" + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file used to execute the deployment.", + "example": "index.js" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function in VCS (Version Control System) repository", + "example": "node\/starter" + } + }, + "required": [ + "name", + "commands", + "entrypoint", + "providerRootDirectory" + ], + "example": { + "name": "node-19.0", + "commands": "npm install", + "entrypoint": "index.js", + "providerRootDirectory": "node\/starter" + } + }, + "templateVariable": { + "description": "Template Variable", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Variable Name.", + "example": "APPWRITE_DATABASE_ID" + }, + "description": { + "type": "string", + "description": "Variable Description.", + "example": "The ID of the Appwrite database that contains the collection to sync." + }, + "value": { + "type": "string", + "description": "Variable Value.", + "example": "512" + }, + "secret": { + "type": "boolean", + "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", + "example": false + }, + "placeholder": { + "type": "string", + "description": "Variable Placeholder.", + "example": "64a55...7b912" + }, + "required": { + "type": "boolean", + "description": "Is the variable required?", + "example": false + }, + "type": { + "type": "string", + "description": "Variable Type.", + "example": "password" + } + }, + "required": [ + "name", + "description", + "value", + "secret", + "placeholder", + "required", + "type" + ], + "example": { + "name": "APPWRITE_DATABASE_ID", + "description": "The ID of the Appwrite database that contains the collection to sync.", + "value": "512", + "secret": false, + "placeholder": "64a55...7b912", + "required": false, + "type": "password" + } + }, + "installation": { + "description": "Installation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Function ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Function creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Function update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "example": "github" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name.", + "example": "appwrite" + }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "example": "5322" + }, + "organizationUrl": { + "type": "string", + "description": "VCS (Version Control System) organization URL. Points at the configured instance, which is not the provider's own host for a self-hosted install.", + "example": "https:\/\/github.com\/appwrite" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "provider", + "organization", + "providerInstallationId", + "organizationUrl" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "provider": "github", + "organization": "appwrite", + "providerInstallationId": "5322", + "organizationUrl": "https:\/\/github.com\/appwrite" + } + }, + "providerRepository": { + "description": "ProviderRepository", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "VCS (Version Control System) repository ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) repository name.", + "example": "appwrite" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name", + "example": "appwrite" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "example": "github" + }, + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "example": true + }, + "defaultBranch": { + "type": "string", + "description": "VCS (Version Control System) repository's default branch name.", + "example": "main" + }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "example": true + }, + "pushedAt": { + "type": "string", + "description": "Last commit date in ISO 8601 format.", + "example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "example": [ + "PORT", + "NODE_ENV" + ] + } + }, + "required": [ + "id", + "name", + "organization", + "provider", + "private", + "defaultBranch", + "providerInstallationId", + "authorized", + "pushedAt", + "variables" + ], + "example": { + "id": "5e5ea5c16897e", + "name": "appwrite", + "organization": "appwrite", + "provider": "github", + "private": true, + "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ] + } + }, + "providerRepositoryFramework": { + "description": "ProviderRepositoryFramework", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "VCS (Version Control System) repository ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) repository name.", + "example": "appwrite" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name", + "example": "appwrite" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "example": "github" + }, + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "example": true + }, + "defaultBranch": { + "type": "string", + "description": "VCS (Version Control System) repository's default branch name.", + "example": "main" + }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "example": true + }, + "pushedAt": { + "type": "string", + "description": "Last commit date in ISO 8601 format.", + "example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "example": [ + "PORT", + "NODE_ENV" + ] + }, + "framework": { + "type": "string", + "description": "Auto-detected framework. Empty if type is not \"framework\".", + "example": "nextjs" + } + }, + "required": [ + "id", + "name", + "organization", + "provider", + "private", + "defaultBranch", + "providerInstallationId", + "authorized", + "pushedAt", + "variables", + "framework" + ], + "example": { + "id": "5e5ea5c16897e", + "name": "appwrite", + "organization": "appwrite", + "provider": "github", + "private": true, + "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], + "framework": "nextjs" + } + }, + "providerRepositoryRuntime": { + "description": "ProviderRepositoryRuntime", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "VCS (Version Control System) repository ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) repository name.", + "example": "appwrite" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name", + "example": "appwrite" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "example": "github" + }, + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "example": true + }, + "defaultBranch": { + "type": "string", + "description": "VCS (Version Control System) repository's default branch name.", + "example": "main" + }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "example": true + }, + "pushedAt": { + "type": "string", + "description": "Last commit date in ISO 8601 format.", + "example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "example": [ + "PORT", + "NODE_ENV" + ] + }, + "runtime": { + "type": "string", + "description": "Auto-detected runtime. Empty if type is not \"runtime\".", + "example": "node-22" + } + }, + "required": [ + "id", + "name", + "organization", + "provider", + "private", + "defaultBranch", + "providerInstallationId", + "authorized", + "pushedAt", + "variables", + "runtime" + ], + "example": { + "id": "5e5ea5c16897e", + "name": "appwrite", + "organization": "appwrite", + "provider": "github", + "private": true, + "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ], + "runtime": "node-22" + } + }, + "detectionFramework": { + "description": "DetectionFramework", + "type": "object", + "properties": { + "type": { + "description": "Repository detection type.", + "example": "framework", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "framework" + ], + "title": "framework" + } + ] + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "$ref": "#\/components\/schemas\/detectionVariable" + }, + "example": [], + "nullable": true + }, + "framework": { + "type": "string", + "description": "Framework", + "example": "nuxt" + }, + "installCommand": { + "type": "string", + "description": "Site Install Command", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "Site Build Command", + "example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "Site Output Directory", + "example": "dist" + } + }, + "required": [ + "type", + "framework", + "installCommand", + "buildCommand", + "outputDirectory" + ], + "example": { + "type": "framework", + "variables": {}, + "framework": "nuxt", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": "dist" + } + }, + "detectionRuntime": { + "description": "DetectionRuntime", + "type": "object", + "properties": { + "type": { + "description": "Repository detection type.", + "example": "runtime", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "runtime" + ], + "title": "runtime" + } + ] + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "$ref": "#\/components\/schemas\/detectionVariable" + }, + "example": [], + "nullable": true + }, + "runtime": { + "type": "string", + "description": "Runtime", + "example": "node" + }, + "entrypoint": { + "type": "string", + "description": "Function Entrypoint", + "example": "index.js" + }, + "commands": { + "type": "string", + "description": "Function install and build commands", + "example": "npm install && npm run build" + } + }, + "required": [ + "type", + "runtime", + "entrypoint", + "commands" + ], + "example": { + "type": "runtime", + "variables": {}, + "runtime": "node", + "entrypoint": "index.js", + "commands": "npm install && npm run build" + } + }, + "detectionVariable": { + "description": "DetectionVariable", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of environment variable", + "example": "NODE_ENV" + }, + "value": { + "type": "string", + "description": "Value of environment variable", + "example": "production" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "NODE_ENV", + "value": "production" + } + }, + "vcsContent": { + "description": "VcsContents", + "type": "object", + "properties": { + "size": { + "type": "integer", + "description": "Content size in bytes. Only files have size, and for directories, 0 is returned.", + "format": "int32", + "example": 1523, + "nullable": true + }, + "isDirectory": { + "type": "boolean", + "description": "If a content is a directory. Directories can be used to check nested contents.", + "example": true, + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of directory or file.", + "example": "Main.java" + } + }, + "required": [ + "name" + ], + "example": { + "size": 1523, + "isDirectory": true, + "name": "Main.java" + } + }, + "branch": { + "description": "Branch", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Branch Name.", + "example": "main" + } + }, + "required": [ + "name" + ], + "example": { + "name": "main" + } + }, + "runtime": { + "description": "Runtime", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Runtime ID.", + "example": "python-3.8" + }, + "key": { + "type": "string", + "description": "Parent runtime key.", + "example": "python" + }, + "name": { + "type": "string", + "description": "Runtime Name.", + "example": "Python" + }, + "version": { + "type": "string", + "description": "Runtime version.", + "example": "3.8" + }, + "base": { + "type": "string", + "description": "Base Docker image used to build the runtime.", + "example": "python:3.8-alpine" + }, + "image": { + "type": "string", + "description": "Image name of Docker Hub.", + "example": "appwrite\\\/runtime-for-python:3.8" + }, + "logo": { + "type": "string", + "description": "Name of the logo image.", + "example": "python.png" + }, + "supports": { + "type": "array", + "description": "List of supported architectures.", + "items": { + "type": "string" + }, + "example": [ + "amd64" + ] + } + }, + "required": [ + "$id", + "key", + "name", + "version", + "base", + "image", + "logo", + "supports" + ], + "example": { + "$id": "python-3.8", + "key": "python", + "name": "Python", + "version": "3.8", + "base": "python:3.8-alpine", + "image": "appwrite\\\/runtime-for-python:3.8", + "logo": "python.png", + "supports": "amd64" + } + }, + "framework": { + "description": "Framework", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Framework key.", + "example": "sveltekit" + }, + "name": { + "type": "string", + "description": "Framework Name.", + "example": "SvelteKit" + }, + "buildRuntime": { + "type": "string", + "description": "Default runtime version.", + "example": "node-22" + }, + "runtimes": { + "type": "array", + "description": "List of supported runtime versions.", + "items": { + "type": "string" + }, + "example": [ + "static-1", + "node-22" + ] + }, + "adapters": { + "type": "array", + "description": "List of supported adapters.", + "items": { + "$ref": "#\/components\/schemas\/frameworkAdapter" + }, + "example": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] + } + }, + "required": [ + "key", + "name", + "buildRuntime", + "runtimes", + "adapters" + ], + "example": { + "key": "sveltekit", + "name": "SvelteKit", + "buildRuntime": "node-22", + "runtimes": [ + "static-1", + "node-22" + ], + "adapters": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] + } + }, + "frameworkAdapter": { + "description": "Framework Adapter", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Adapter key.", + "example": "static" + }, + "installCommand": { + "type": "string", + "description": "Default command to download dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "Default command to build site into output directory.", + "example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "Default output directory of build.", + "example": ".\/dist" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "example": "index.html", + "nullable": true + } + }, + "required": [ + "key", + "installCommand", + "buildCommand", + "outputDirectory" + ], + "example": { + "key": "static", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": ".\/dist", + "fallbackFile": "index.html" + } + }, + "deployment": { + "description": "Deployment", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Deployment ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Deployment update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "type": { + "type": "string", + "description": "Type of deployment.", + "example": "vcs" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "functions" + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file to use to execute the deployment code.", + "example": "index.js" + }, + "sourceSize": { + "type": "integer", + "description": "The code size in bytes.", + "format": "int32", + "example": 128 + }, + "buildSize": { + "type": "integer", + "description": "The build output size in bytes.", + "format": "int32", + "example": 128 + }, + "totalSize": { + "type": "integer", + "description": "The total size in bytes (source and build output).", + "format": "int32", + "example": 128 + }, + "buildId": { + "type": "string", + "description": "The current build ID.", + "example": "5e5ea5c16897e" + }, + "activate": { + "type": "boolean", + "description": "Whether the deployment should be automatically activated.", + "example": true + }, + "screenshotLight": { + "type": "string", + "description": "Screenshot with light theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "screenshotDark": { + "type": "string", + "description": "Screenshot with dark theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "status": { + "description": "The deployment status. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", \"canceled\" and \"failed\".", + "example": "ready", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "building" + ], + "title": "building" + }, + { + "type": "string", + "enum": [ + "ready" + ], + "title": "ready" + }, + { + "type": "string", + "enum": [ + "canceled" + ], + "title": "canceled" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "buildLogs": { + "type": "string", + "description": "The build logs.", + "example": "Compiling source files..." + }, + "buildDuration": { + "type": "integer", + "description": "The current build time in seconds.", + "format": "int32", + "example": 128 + }, + "providerRepositoryName": { + "type": "string", + "description": "The name of the vcs provider repository", + "example": "database" + }, + "providerRepositoryOwner": { + "type": "string", + "description": "The name of the vcs provider repository owner", + "example": "utopia" + }, + "providerRepositoryUrl": { + "type": "string", + "description": "The url of the vcs provider repository", + "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function" + }, + "providerCommitHash": { + "type": "string", + "description": "The commit hash of the vcs commit", + "example": "7c3f25d" + }, + "providerCommitAuthorUrl": { + "type": "string", + "description": "The url of vcs commit author", + "example": "https:\/\/github.com\/vermakhushboo" + }, + "providerCommitAuthor": { + "type": "string", + "description": "The name of vcs commit author", + "example": "Khushboo Verma" + }, + "providerCommitMessage": { + "type": "string", + "description": "The commit message", + "example": "Update index.js" + }, + "providerCommitUrl": { + "type": "string", + "description": "The url of the vcs commit", + "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb" + }, + "providerBranch": { + "type": "string", + "description": "The branch of the vcs repository", + "example": "0.7.x" + }, + "providerBranchUrl": { + "type": "string", + "description": "The branch of the vcs repository", + "example": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "resourceId", + "resourceType", + "entrypoint", + "sourceSize", + "buildSize", + "totalSize", + "buildId", + "activate", + "screenshotLight", + "screenshotDark", + "status", + "buildLogs", + "buildDuration", + "providerRepositoryName", + "providerRepositoryOwner", + "providerRepositoryUrl", + "providerCommitHash", + "providerCommitAuthorUrl", + "providerCommitAuthor", + "providerCommitMessage", + "providerCommitUrl", + "providerBranch", + "providerBranchUrl" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "type": "vcs", + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "entrypoint": "index.js", + "sourceSize": 128, + "buildSize": 128, + "totalSize": 128, + "buildId": "5e5ea5c16897e", + "activate": true, + "screenshotLight": "5e5ea5c16897e", + "screenshotDark": "5e5ea5c16897e", + "status": "ready", + "buildLogs": "Compiling source files...", + "buildDuration": 128, + "providerRepositoryName": "database", + "providerRepositoryOwner": "utopia", + "providerRepositoryUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function", + "providerCommitHash": "7c3f25d", + "providerCommitAuthorUrl": "https:\/\/github.com\/vermakhushboo", + "providerCommitAuthor": "Khushboo Verma", + "providerCommitMessage": "Update index.js", + "providerCommitUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb", + "providerBranch": "0.7.x", + "providerBranchUrl": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + } + }, + "execution": { + "description": "Execution", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Execution ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Execution creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Execution update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Execution roles.", + "items": { + "type": "string" + }, + "example": [ + "any" + ] + }, + "resourceId": { + "type": "string", + "description": "Function or site ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "description": "Execution resource type.", + "example": "functions", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + } + ] + }, + "deploymentId": { + "type": "string", + "description": "Deployment ID used to create the execution.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", + "example": "http", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "http" + ], + "title": "http" + }, + { + "type": "string", + "enum": [ + "schedule" + ], + "title": "schedule" + }, + { + "type": "string", + "enum": [ + "event" + ], + "title": "event" + } + ] + }, + "status": { + "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + } + ] + }, + "requestMethod": { + "type": "string", + "description": "HTTP request method type.", + "example": "GET" + }, + "requestPath": { + "type": "string", + "description": "HTTP request path and query.", + "example": "\/articles?id=5" + }, + "requestHeaders": { + "type": "array", + "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "responseStatusCode": { + "type": "integer", + "description": "HTTP response status code.", + "format": "int32", + "example": 200 + }, + "responseBody": { + "type": "string", + "description": "HTTP response body. This will return empty unless execution is created as synchronous.", + "example": "" + }, + "responseHeaders": { + "type": "array", + "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "logs": { + "type": "string", + "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "errors": { + "type": "string", + "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "duration": { + "type": "number", + "description": "Total time the resource(function\/site) took to respond, in seconds.", + "format": "double", + "example": 1.23 + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "resourceId", + "resourceType", + "deploymentId", + "trigger", + "status", + "requestMethod", + "requestPath", + "requestHeaders", + "responseStatusCode", + "responseBody", + "responseHeaders", + "logs", + "errors", + "duration" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "any" + ], + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "deploymentId": "5e5ea5c16897e", + "trigger": "http", + "status": "processing", + "requestMethod": "GET", + "requestPath": "\/articles?id=5", + "requestHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "responseStatusCode": 200, + "responseBody": "", + "responseHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "logs": "", + "errors": "", + "duration": 1.23, + "scheduledAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "project": { + "description": "Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Project creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Project update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Project name.", + "example": "New Project" + }, + "teamId": { + "type": "string", + "description": "Project team ID.", + "example": "1592981250" + }, + "region": { + "type": "string", + "description": "Project region", + "example": "fra" + }, + "smtpEnabled": { + "type": "boolean", + "description": "Status for custom SMTP", + "example": false + }, + "smtpSenderName": { + "type": "string", + "description": "SMTP sender name", + "example": "John Appwrite" + }, + "smtpSenderEmail": { + "type": "string", + "description": "SMTP sender email", + "example": "john@appwrite.io" + }, + "smtpReplyToName": { + "type": "string", + "description": "SMTP reply to name", + "example": "Support Team" + }, + "smtpReplyToEmail": { + "type": "string", + "description": "SMTP reply to email", + "example": "support@appwrite.io" + }, + "smtpHost": { + "type": "string", + "description": "SMTP server host name", + "example": "mail.appwrite.io" + }, + "smtpPort": { + "type": "integer", + "description": "SMTP server port", + "format": "int32", + "example": 25 + }, + "smtpUsername": { + "type": "string", + "description": "SMTP server username", + "example": "emailuser" + }, + "smtpPassword": { + "type": "string", + "description": "SMTP server password. This property is write-only and always returned empty.", + "format": "password", + "example": "smtp-password" + }, + "smtpSecure": { + "type": "string", + "description": "SMTP server secure protocol", + "example": "tls" + }, + "pingCount": { + "type": "integer", + "description": "Number of times the ping was received for this project.", + "format": "int32", + "example": 1 + }, + "pingedAt": { + "type": "string", + "description": "Last ping datetime in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "labels": { + "type": "array", + "description": "Labels for the project.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "status": { + "type": "string", + "description": "Project status", + "example": "active" + }, + "onboarding": { + "type": "object", + "additionalProperties": true, + "description": "Stage progress (completed or skipped) with timestamps and actor types, keyed by stage id.", + "example": {} + }, + "authMethods": { + "type": "array", + "description": "List of auth methods.", + "items": { + "$ref": "#\/components\/schemas\/projectAuthMethod" + }, + "example": [] + }, + "services": { + "type": "array", + "description": "List of services.", + "items": { + "$ref": "#\/components\/schemas\/projectService" + }, + "example": [] + }, + "protocols": { + "type": "array", + "description": "List of protocols.", + "items": { + "$ref": "#\/components\/schemas\/projectProtocol" + }, + "example": [] + }, + "blocks": { + "type": "array", + "description": "Project blocks information", + "items": { + "$ref": "#\/components\/schemas\/block" + }, + "example": [] + }, + "consoleAccessedAt": { + "type": "string", + "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "wafEnabled": { + "type": "boolean", + "description": "Whether WAF enforcement is enabled for the project.", + "example": true, + "nullable": true + }, + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true + }, + "firstAccessedAt": { + "type": "string", + "description": "First time the project received a non-console API request. Empty until the project is used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "mcpAccessedAt": { + "type": "string", + "description": "Last time the project was accessed through the MCP server. Empty if it was never accessed via MCP.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "oAuth2ServerEnabled": { + "type": "boolean", + "description": "OAuth2 server status", + "example": false, + "nullable": true + }, + "oAuth2ServerAuthorizationUrl": { + "type": "string", + "description": "OAuth2 server authorization URL", + "example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "nullable": true + }, + "oAuth2ServerScopes": { + "type": "array", + "description": "OAuth2 server allowed scopes", + "items": { + "type": "string" + }, + "example": [ + "read", + "write" + ], + "nullable": true + }, + "oAuth2ServerDefaultScopes": { + "type": "array", + "description": "OAuth2 server scopes used when an authorization request omits the scope parameter", + "items": { + "type": "string" + }, + "example": [ + "read" + ], + "nullable": true + }, + "oAuth2ServerInstallationScopes": { + "type": "array", + "description": "Scopes an application may request when installed on a team", + "items": { + "type": "string" + }, + "example": [ + "project:all" + ], + "nullable": true + }, + "oAuth2ServerAuthorizationDetailsTypes": { + "type": "array", + "description": "OAuth2 server accepted RFC 9396 authorization_details types", + "items": { + "type": "string" + }, + "example": [ + "calendar" + ], + "nullable": true + }, + "oAuth2ServerAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for confidential clients", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for confidential clients", + "format": "int32", + "example": 86400, + "nullable": true + }, + "oAuth2ServerPublicAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerPublicRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", + "format": "int32", + "example": 2592000, + "nullable": true + }, + "oAuth2ServerInstallationAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for app installation access tokens", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerConfidentialPkce": { + "type": "boolean", + "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", + "example": false, + "nullable": true + }, + "oAuth2ServerVerificationUrl": { + "type": "string", + "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", + "example": "https:\/\/cloud.appwrite.io\/device", + "nullable": true + }, + "oAuth2ServerUserCodeLength": { + "type": "integer", + "description": "Number of characters in the device flow user code, excluding the formatting separator.", + "format": "int32", + "example": 8, + "nullable": true + }, + "oAuth2ServerUserCodeFormat": { + "type": "string", + "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", + "example": "alphanumeric", + "nullable": true + }, + "oAuth2ServerDeviceCodeDuration": { + "type": "integer", + "description": "Lifetime in seconds of device flow device codes and user codes.", + "format": "int32", + "example": 600, + "nullable": true + }, + "oAuth2ServerDiscoveryUrl": { + "type": "string", + "description": "OAuth2 server discovery URL", + "example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "teamId", + "region", + "smtpEnabled", + "smtpSenderName", + "smtpSenderEmail", + "smtpReplyToName", + "smtpReplyToEmail", + "smtpHost", + "smtpPort", + "smtpUsername", + "smtpPassword", + "smtpSecure", + "pingCount", + "pingedAt", + "labels", + "status", + "onboarding", + "authMethods", + "services", + "protocols", + "blocks", + "consoleAccessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "New Project", + "teamId": "1592981250", + "region": "fra", + "smtpEnabled": false, + "smtpSenderName": "John Appwrite", + "smtpSenderEmail": "john@appwrite.io", + "smtpReplyToName": "Support Team", + "smtpReplyToEmail": "support@appwrite.io", + "smtpHost": "mail.appwrite.io", + "smtpPort": 25, + "smtpUsername": "emailuser", + "smtpPassword": "smtp-password", + "smtpSecure": "tls", + "pingCount": 1, + "pingedAt": "2020-10-15T06:38:00.000+00:00", + "labels": [ + "vip" + ], + "status": "active", + "onboarding": {}, + "authMethods": {}, + "services": {}, + "protocols": {}, + "blocks": "", + "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00", + "wafEnabled": true, + "billingLimits": "", + "firstAccessedAt": "2020-10-15T06:38:00.000+00:00", + "mcpAccessedAt": "2020-10-15T06:38:00.000+00:00", + "oAuth2ServerEnabled": false, + "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "oAuth2ServerScopes": [ + "read", + "write" + ], + "oAuth2ServerDefaultScopes": [ + "read" + ], + "oAuth2ServerInstallationScopes": [ + "project:all" + ], + "oAuth2ServerAuthorizationDetailsTypes": [ + "calendar" + ], + "oAuth2ServerAccessTokenDuration": 3600, + "oAuth2ServerRefreshTokenDuration": 86400, + "oAuth2ServerPublicAccessTokenDuration": 3600, + "oAuth2ServerPublicRefreshTokenDuration": 2592000, + "oAuth2ServerInstallationAccessTokenDuration": 3600, + "oAuth2ServerConfidentialPkce": false, + "oAuth2ServerVerificationUrl": "https:\/\/cloud.appwrite.io\/device", + "oAuth2ServerUserCodeLength": 8, + "oAuth2ServerUserCodeFormat": "alphanumeric", + "oAuth2ServerDeviceCodeDuration": 600, + "oAuth2ServerDiscoveryUrl": "https:\/\/auth.example.com\/.well-known\/openid-configuration" + } + }, + "projectAuthMethod": { + "description": "ProjectAuthMethod", + "type": "object", + "properties": { + "$id": { + "description": "Auth method ID.", + "example": "email-password", + "title": "ProjectAuthMethodId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "email-password" + ], + "title": "email-password" + }, + { + "type": "string", + "enum": [ + "magic-url" + ], + "title": "magic-url" + }, + { + "type": "string", + "enum": [ + "email-otp" + ], + "title": "email-otp" + }, + { + "type": "string", + "enum": [ + "anonymous" + ], + "title": "anonymous" + }, + { + "type": "string", + "enum": [ + "invites" + ], + "title": "invites" + }, + { + "type": "string", + "enum": [ + "jwt" + ], + "title": "jwt" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "passkey" + ], + "title": "passkey" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Auth method status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "email-password", + "enabled": false + } + }, + "projectService": { + "description": "ProjectService", + "type": "object", + "properties": { + "$id": { + "description": "Service ID.", + "example": "sites", + "title": "ProjectServiceId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "avatars" + ], + "title": "avatars" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "locale" + ], + "title": "locale" + }, + { + "type": "string", + "enum": [ + "health" + ], + "title": "health" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "vcs" + ], + "title": "vcs" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "proxy" + ], + "title": "proxy" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "advisor" + ], + "title": "advisor" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Service status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "sites", + "enabled": false + } + }, + "projectProtocol": { + "description": "ProjectProtocol", + "type": "object", + "properties": { + "$id": { + "description": "Protocol ID.", + "example": "graphql", + "title": "ProjectProtocolId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "rest" + ], + "title": "rest" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "websocket" + ], + "title": "websocket" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Protocol status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "graphql", + "enabled": false + } + }, + "webhook": { + "description": "Webhook", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Webhook ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Webhook creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Webhook update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Webhook name.", + "example": "My Webhook" + }, + "url": { + "type": "string", + "description": "Webhook URL endpoint.", + "example": "https:\/\/example.com\/webhook" + }, + "events": { + "type": "array", + "description": "Webhook trigger events.", + "items": { + "type": "string" + }, + "example": [ + "databases.tables.update", + "databases.collections.update" + ] + }, + "tls": { + "type": "boolean", + "description": "Indicates if SSL \/ TLS certificate verification is enabled.", + "example": true + }, + "authUsername": { + "type": "string", + "description": "HTTP basic authentication username.", + "example": "username" + }, + "authPassword": { + "type": "string", + "description": "HTTP basic authentication password. Write-only: always returned empty.", + "format": "password", + "example": "webhook-password" + }, + "secret": { + "type": "string", + "description": "Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.", + "example": "ad3d581ca230e2b7059c545e5a" + }, + "enabled": { + "type": "boolean", + "description": "Indicates if this webhook is enabled.", + "example": true + }, + "logs": { + "type": "string", + "description": "Webhook error logs from the most recent failure.", + "example": "Failed to connect to remote server." + }, + "attempts": { + "type": "integer", + "description": "Number of consecutive failed webhook attempts.", + "format": "int32", + "example": 10 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "url", + "events", + "tls", + "authUsername", + "authPassword", + "secret", + "enabled", + "logs", + "attempts" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Webhook", + "url": "https:\/\/example.com\/webhook", + "events": [ + "databases.tables.update", + "databases.collections.update" + ], + "tls": true, + "authUsername": "username", + "authPassword": "webhook-password", + "secret": "ad3d581ca230e2b7059c545e5a", + "enabled": true, + "logs": "Failed to connect to remote server.", + "attempts": 10 + } + }, + "key": { + "description": "Key", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Key update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Key name.", + "example": "My API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "secret": { + "type": "string", + "description": "Secret key.", + "example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "sdks": { + "type": "array", + "description": "List of SDK user agents that used this key.", + "items": { + "type": "string" + }, + "example": [ + "appwrite:flutter" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "scopes": "users.read", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" + } + }, + "ephemeralKey": { + "description": "Ephemeral Key", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Key update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Key name.", + "example": "My API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "secret": { + "type": "string", + "description": "Secret key.", + "example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "sdks": { + "type": "array", + "description": "List of SDK user agents that used this key.", + "items": { + "type": "string" + }, + "example": [ + "appwrite:flutter" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "scopes": "users.read", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" + } + }, + "mockNumber": { + "description": "Mock Number", + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "Mock phone number for testing phone authentication. Useful for testing phone authentication without sending an SMS.", + "example": "+1612842323" + }, + "otp": { + "type": "string", + "description": "Mock OTP for the number. ", + "example": "123456" + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "number", + "otp", + "$createdAt", + "$updatedAt" + ], + "example": { + "number": "+1612842323", + "otp": "123456", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oAuth2Github": { + "description": "OAuth2GitHub", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "GitHub OAuth2 client ID. For GitHub Apps, use the \"App ID\" when both an App ID and client ID are available.", + "example": "e4d87900000000540733" + }, + "clientSecret": { + "type": "string", + "description": "GitHub OAuth2 client secret.", + "example": "5e07c00000000000000000000000000000198bcc" + }, + "prompt": { + "type": "array", + "description": "GitHub OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "select_account" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "e4d87900000000540733", + "clientSecret": "5e07c00000000000000000000000000000198bcc", + "prompt": [ + "select_account" + ] + } + }, + "oAuth2Discord": { + "description": "OAuth2Discord", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Discord OAuth2 client ID.", + "example": "950722000000343754" + }, + "clientSecret": { + "type": "string", + "description": "Discord OAuth2 client secret.", + "example": "YmPXnM000000000000000000002zFg5D" + }, + "prompt": { + "type": "array", + "description": "Discord OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "950722000000343754", + "clientSecret": "YmPXnM000000000000000000002zFg5D", + "prompt": [ + "none" + ] + } + }, + "oAuth2Figma": { + "description": "OAuth2Figma", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Figma OAuth2 client ID.", + "example": "byay5H0000000000VtiI40" + }, + "clientSecret": { + "type": "string", + "description": "Figma OAuth2 client secret.", + "example": "yEpOYn0000000000000000004iIsU5" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "byay5H0000000000VtiI40", + "clientSecret": "yEpOYn0000000000000000004iIsU5" + } + }, + "oAuth2Dropbox": { + "description": "OAuth2Dropbox", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "appKey": { + "type": "string", + "description": "Dropbox OAuth2 app key.", + "example": "jl000000000009t" + }, + "appSecret": { + "type": "string", + "description": "Dropbox OAuth2 app secret.", + "example": "g200000000000vw" + } + }, + "required": [ + "$id", + "enabled", + "appKey", + "appSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "appKey": "jl000000000009t", + "appSecret": "g200000000000vw" + } + }, + "oAuth2Dailymotion": { + "description": "OAuth2Dailymotion", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "apiKey": { + "type": "string", + "description": "Dailymotion OAuth2 API key.", + "example": "07a9000000000000067f" + }, + "apiSecret": { + "type": "string", + "description": "Dailymotion OAuth2 API secret.", + "example": "a399a90000000000000000000000000000d90639" + } + }, + "required": [ + "$id", + "enabled", + "apiKey", + "apiSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "apiKey": "07a9000000000000067f", + "apiSecret": "a399a90000000000000000000000000000d90639" + } + }, + "oAuth2Bitbucket": { + "description": "OAuth2Bitbucket", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "key": { + "type": "string", + "description": "Bitbucket OAuth2 key.", + "example": "Knt70000000000ByRc" + }, + "secret": { + "type": "string", + "description": "Bitbucket OAuth2 secret.", + "example": "NMfLZJ00000000000000000000TLQdDx" + } + }, + "required": [ + "$id", + "enabled", + "key", + "secret" + ], + "example": { + "$id": "github", + "enabled": false, + "key": "Knt70000000000ByRc", + "secret": "NMfLZJ00000000000000000000TLQdDx" + } + }, + "oAuth2Bitly": { + "description": "OAuth2Bitly", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Bitly OAuth2 client ID.", + "example": "d95151000000000000000000000000000067af9b" + }, + "clientSecret": { + "type": "string", + "description": "Bitly OAuth2 client secret.", + "example": "a13e250000000000000000000000000000d73095" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "d95151000000000000000000000000000067af9b", + "clientSecret": "a13e250000000000000000000000000000d73095" + } + }, + "oAuth2Box": { + "description": "OAuth2Box", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Box OAuth2 client ID.", + "example": "deglcs00000000000000000000x2og6y" + }, + "clientSecret": { + "type": "string", + "description": "Box OAuth2 client secret.", + "example": "OKM1f100000000000000000000eshEif" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "deglcs00000000000000000000x2og6y", + "clientSecret": "OKM1f100000000000000000000eshEif" + } + }, + "oAuth2Autodesk": { + "description": "OAuth2Autodesk", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Autodesk OAuth2 client ID.", + "example": "5zw90v00000000000000000000kVYXN7" + }, + "clientSecret": { + "type": "string", + "description": "Autodesk OAuth2 client secret.", + "example": "7I000000000000MW" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "5zw90v00000000000000000000kVYXN7", + "clientSecret": "7I000000000000MW" + } + }, + "oAuth2Google": { + "description": "OAuth2Google", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Google OAuth2 client ID.", + "example": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com" + }, + "clientSecret": { + "type": "string", + "description": "Google OAuth2 client secret.", + "example": "GOCSPX-2k8gsR0000000000000000VNahJj" + }, + "prompt": { + "type": "array", + "description": "Google OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "consent" + ] + }, + "nativeEnabled": { + "type": "boolean", + "description": "Native Google sign-in is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", + "example": false + }, + "nativeClientIds": { + "type": "array", + "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in, next to the client ID.", + "items": { + "type": "string" + }, + "example": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "nativeEnabled", + "nativeClientIds" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", + "prompt": [ + "consent" + ], + "nativeEnabled": false, + "nativeClientIds": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + ] + } + }, + "oAuth2Zoom": { + "description": "OAuth2Zoom", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Zoom OAuth2 client ID.", + "example": "QMAC00000000000000w0AQ" + }, + "clientSecret": { + "type": "string", + "description": "Zoom OAuth2 client secret.", + "example": "GAWsG4000000000000000000007U01ON" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "QMAC00000000000000w0AQ", + "clientSecret": "GAWsG4000000000000000000007U01ON" + } + }, + "oAuth2Zoho": { + "description": "OAuth2Zoho", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Zoho OAuth2 client ID.", + "example": "1000.83C178000000000000000000RPNX0B" + }, + "clientSecret": { + "type": "string", + "description": "Zoho OAuth2 client secret.", + "example": "fb5cac000000000000000000000000000000a68f6e" + }, + "prompt": { + "type": "array", + "description": "Zoho OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "consent" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "1000.83C178000000000000000000RPNX0B", + "clientSecret": "fb5cac000000000000000000000000000000a68f6e", + "prompt": [ + "consent" + ] + } + }, + "oAuth2Yandex": { + "description": "OAuth2Yandex", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Yandex OAuth2 client ID.", + "example": "6a8a6a0000000000000000000091483c" + }, + "clientSecret": { + "type": "string", + "description": "Yandex OAuth2 client secret.", + "example": "bbf98500000000000000000000c75a63" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a8a6a0000000000000000000091483c", + "clientSecret": "bbf98500000000000000000000c75a63" + } + }, + "oAuth2X": { + "description": "OAuth2X", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "customerKey": { + "type": "string", + "description": "X OAuth2 customer key.", + "example": "slzZV0000000000000NFLaWT" + }, + "secretKey": { + "type": "string", + "description": "X OAuth2 secret key.", + "example": "tkEPkp00000000000000000000000000000000000000FTxbI9" + } + }, + "required": [ + "$id", + "enabled", + "customerKey", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "customerKey": "slzZV0000000000000NFLaWT", + "secretKey": "tkEPkp00000000000000000000000000000000000000FTxbI9" + } + }, + "oAuth2WordPress": { + "description": "OAuth2WordPress", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "WordPress OAuth2 client ID.", + "example": "130005" + }, + "clientSecret": { + "type": "string", + "description": "WordPress OAuth2 client secret.", + "example": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "130005", + "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" + } + }, + "oAuth2Webflow": { + "description": "OAuth2Webflow", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Webflow OAuth2 client ID.", + "example": "8bb20000000000000000000000000000000000000000000000000000000040dd" + }, + "clientSecret": { + "type": "string", + "description": "Webflow OAuth2 client secret.", + "example": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "8bb20000000000000000000000000000000000000000000000000000000040dd", + "clientSecret": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "oAuth2Twitch": { + "description": "OAuth2Twitch", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Twitch OAuth2 client ID.", + "example": "vvi0in000000000000000000ikmt9p" + }, + "clientSecret": { + "type": "string", + "description": "Twitch OAuth2 client secret.", + "example": "pmapue000000000000000000zylw3v" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "vvi0in000000000000000000ikmt9p", + "clientSecret": "pmapue000000000000000000zylw3v" + } + }, + "oAuth2Stripe": { + "description": "OAuth2Stripe", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Stripe OAuth2 client ID.", + "example": "ca_UKibXX0000000000000000000006byvR" + }, + "apiSecretKey": { + "type": "string", + "description": "Stripe OAuth2 API secret key.", + "example": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "apiSecretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "ca_UKibXX0000000000000000000006byvR", + "apiSecretKey": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + } + }, + "oAuth2Spotify": { + "description": "OAuth2Spotify", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Spotify OAuth2 client ID.", + "example": "6ec271000000000000000000009beace" + }, + "clientSecret": { + "type": "string", + "description": "Spotify OAuth2 client secret.", + "example": "db068a000000000000000000008b5b9f" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6ec271000000000000000000009beace", + "clientSecret": "db068a000000000000000000008b5b9f" + } + }, + "oAuth2Slack": { + "description": "OAuth2Slack", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Slack OAuth2 client ID.", + "example": "23000000089.15000000000023" + }, + "clientSecret": { + "type": "string", + "description": "Slack OAuth2 client secret.", + "example": "81656000000000000000000000f3d2fd" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "23000000089.15000000000023", + "clientSecret": "81656000000000000000000000f3d2fd" + } + }, + "oAuth2Podio": { + "description": "OAuth2Podio", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Podio OAuth2 client ID.", + "example": "appwrite-oauth-test-app" + }, + "clientSecret": { + "type": "string", + "description": "Podio OAuth2 client secret.", + "example": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "appwrite-oauth-test-app", + "clientSecret": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + } + }, + "oAuth2Notion": { + "description": "OAuth2Notion", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "oauthClientId": { + "type": "string", + "description": "Notion OAuth2 client ID.", + "example": "341d8700-0000-0000-0000-000000446ee3" + }, + "oauthClientSecret": { + "type": "string", + "description": "Notion OAuth2 client secret.", + "example": "secret_dLUr4b000000000000000000000000000000lFHAa9" + } + }, + "required": [ + "$id", + "enabled", + "oauthClientId", + "oauthClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "oauthClientId": "341d8700-0000-0000-0000-000000446ee3", + "oauthClientSecret": "secret_dLUr4b000000000000000000000000000000lFHAa9" + } + }, + "oAuth2Salesforce": { + "description": "OAuth2Salesforce", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "customerKey": { + "type": "string", + "description": "Salesforce OAuth2 consumer key.", + "example": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq" + }, + "customerSecret": { + "type": "string", + "description": "Salesforce OAuth2 consumer secret.", + "example": "3w000000000000e2" + }, + "prompt": { + "type": "array", + "description": "Salesforce OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "login" + ] + } + }, + "required": [ + "$id", + "enabled", + "customerKey", + "customerSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "customerSecret": "3w000000000000e2", + "prompt": [ + "login" + ] + } + }, + "oAuth2Yahoo": { + "description": "OAuth2Yahoo", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Yahoo OAuth2 client ID.", + "example": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm" + }, + "clientSecret": { + "type": "string", + "description": "Yahoo OAuth2 client secret.", + "example": "cf978f0000000000000000000000000000c5e2e9" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "clientSecret": "cf978f0000000000000000000000000000c5e2e9" + } + }, + "oAuth2Cloudflare": { + "description": "OAuth2Cloudflare", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Cloudflare OAuth2 client ID.", + "example": "4b866000000000000000000000c9e4e2" + }, + "clientSecret": { + "type": "string", + "description": "Cloudflare OAuth2 client secret.", + "example": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "4b866000000000000000000000c9e4e2", + "clientSecret": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" + } + }, + "oAuth2HuggingFace": { + "description": "OAuth2HuggingFace", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Hugging Face OAuth2 client ID.", + "example": "2ab9cff9-d711-40ad-a91e-b08a49c42d24" + }, + "clientSecret": { + "type": "string", + "description": "Hugging Face OAuth2 client secret.", + "example": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "2ab9cff9-d711-40ad-a91e-b08a49c42d24", + "clientSecret": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" + } + }, + "oAuth2Linkedin": { + "description": "OAuth2Linkedin", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "LinkedIn OAuth2 client ID.", + "example": "770000000000dv" + }, + "primaryClientSecret": { + "type": "string", + "description": "LinkedIn OAuth2 primary client secret.", + "example": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "primaryClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "770000000000dv", + "primaryClientSecret": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + } + }, + "oAuth2Disqus": { + "description": "OAuth2Disqus", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "publicKey": { + "type": "string", + "description": "Disqus OAuth2 public key.", + "example": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX" + }, + "secretKey": { + "type": "string", + "description": "Disqus OAuth2 secret key.", + "example": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + } + }, + "required": [ + "$id", + "enabled", + "publicKey", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "publicKey": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "secretKey": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + } + }, + "oAuth2Amazon": { + "description": "OAuth2Amazon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Amazon OAuth2 client ID.", + "example": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2" + }, + "clientSecret": { + "type": "string", + "description": "Amazon OAuth2 client secret.", + "example": "79ffe4000000000000000000000000000000000000000000000000000002de55" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "clientSecret": "79ffe4000000000000000000000000000000000000000000000000000002de55" + } + }, + "oAuth2Etsy": { + "description": "OAuth2Etsy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "keyString": { + "type": "string", + "description": "Etsy OAuth2 keystring.", + "example": "nsgzxh0000000000008j85a2" + }, + "sharedSecret": { + "type": "string", + "description": "Etsy OAuth2 shared secret.", + "example": "tp000000ru" + } + }, + "required": [ + "$id", + "enabled", + "keyString", + "sharedSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "keyString": "nsgzxh0000000000008j85a2", + "sharedSecret": "tp000000ru" + } + }, + "oAuth2Facebook": { + "description": "OAuth2Facebook", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "appId": { + "type": "string", + "description": "Facebook OAuth2 app ID.", + "example": "260600000007694" + }, + "appSecret": { + "type": "string", + "description": "Facebook OAuth2 app secret.", + "example": "2d0b2800000000000000000000d38af4" + } + }, + "required": [ + "$id", + "enabled", + "appId", + "appSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "appId": "260600000007694", + "appSecret": "2d0b2800000000000000000000d38af4" + } + }, + "oAuth2Tradeshift": { + "description": "OAuth2Tradeshift", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "oauth2ClientId": { + "type": "string", + "description": "Tradeshift OAuth2 client ID.", + "example": "appwrite-test-org.appwrite-test-app" + }, + "oauth2ClientSecret": { + "type": "string", + "description": "Tradeshift OAuth2 client secret.", + "example": "7cb52700-0000-0000-0000-000000ca5b83" + } + }, + "required": [ + "$id", + "enabled", + "oauth2ClientId", + "oauth2ClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "oauth2ClientId": "appwrite-test-org.appwrite-test-app", + "oauth2ClientSecret": "7cb52700-0000-0000-0000-000000ca5b83" + } + }, + "oAuth2Paypal": { + "description": "OAuth2Paypal", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "PayPal OAuth2 client ID.", + "example": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB" + }, + "secretKey": { + "type": "string", + "description": "PayPal OAuth2 secret key.", + "example": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "secretKey": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + } + }, + "oAuth2Gitlab": { + "description": "OAuth2Gitlab", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "applicationId": { + "type": "string", + "description": "GitLab OAuth2 application ID.", + "example": "d41ffe0000000000000000000000000000000000000000000000000000d5e252" + }, + "secret": { + "type": "string", + "description": "GitLab OAuth2 secret.", + "example": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38" + }, + "endpoint": { + "type": "string", + "description": "GitLab OAuth2 endpoint URL. Defaults to https:\/\/gitlab.com for self-hosted instances.", + "example": "https:\/\/gitlab.com" + } + }, + "required": [ + "$id", + "enabled", + "applicationId", + "secret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "applicationId": "d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "secret": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "endpoint": "https:\/\/gitlab.com" + } + }, + "oAuth2Appwrite": { + "description": "OAuth2Appwrite", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Appwrite OAuth2 client ID.", + "example": "6a42000000000000b5a0" + }, + "clientSecret": { + "type": "string", + "description": "Appwrite OAuth2 client secret.", + "example": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a42000000000000b5a0", + "clientSecret": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "oAuth2Authentik": { + "description": "OAuth2Authentik", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Authentik OAuth2 client ID.", + "example": "dTKOPa0000000000000000000000000000e7G8hv" + }, + "clientSecret": { + "type": "string", + "description": "Authentik OAuth2 client secret.", + "example": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK" + }, + "endpoint": { + "type": "string", + "description": "Authentik OAuth2 endpoint domain.", + "example": "example.authentik.com" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "dTKOPa0000000000000000000000000000e7G8hv", + "clientSecret": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "endpoint": "example.authentik.com" + } + }, + "oAuth2Auth0": { + "description": "OAuth2Auth0", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Auth0 OAuth2 client ID.", + "example": "OaOkIA000000000000000000005KLSYq" + }, + "clientSecret": { + "type": "string", + "description": "Auth0 OAuth2 client secret.", + "example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" + }, + "prompt": { + "type": "array", + "description": "Auth0 OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, + "endpoint": { + "type": "string", + "description": "Auth0 OAuth2 endpoint domain.", + "example": "example.us.auth0.com" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "OaOkIA000000000000000000005KLSYq", + "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "prompt": [ + "none" + ], + "endpoint": "example.us.auth0.com" + } + }, + "oAuth2FusionAuth": { + "description": "OAuth2FusionAuth", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "FusionAuth OAuth2 client ID.", + "example": "b2222c00-0000-0000-0000-000000862097" + }, + "clientSecret": { + "type": "string", + "description": "FusionAuth OAuth2 client secret.", + "example": "Jx4s0C0000000000000000000000000000000wGqLsc" + }, + "endpoint": { + "type": "string", + "description": "FusionAuth OAuth2 endpoint domain.", + "example": "example.fusionauth.io" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "b2222c00-0000-0000-0000-000000862097", + "clientSecret": "Jx4s0C0000000000000000000000000000000wGqLsc", + "endpoint": "example.fusionauth.io" + } + }, + "oAuth2Keycloak": { + "description": "OAuth2Keycloak", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Keycloak OAuth2 client ID.", + "example": "appwrite-o0000000st-app" + }, + "clientSecret": { + "type": "string", + "description": "Keycloak OAuth2 client secret.", + "example": "jdjrJd00000000000000000000HUsaZO" + }, + "endpoint": { + "type": "string", + "description": "Keycloak OAuth2 endpoint domain.", + "example": "keycloak.example.com" + }, + "realmName": { + "type": "string", + "description": "Keycloak OAuth2 realm name.", + "example": "appwrite-realm" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint", + "realmName" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "appwrite-o0000000st-app", + "clientSecret": "jdjrJd00000000000000000000HUsaZO", + "endpoint": "keycloak.example.com", + "realmName": "appwrite-realm" + } + }, + "oAuth2Oidc": { + "description": "OAuth2Oidc", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "OpenID Connect OAuth2 client ID.", + "example": "qibI2x0000000000000000000000000006L2YFoG" + }, + "clientSecret": { + "type": "string", + "description": "OpenID Connect OAuth2 client secret.", + "example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" + }, + "prompt": { + "type": "array", + "description": "OpenID Connect prompt values controlling the authentication and consent screens.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", + "example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/authorize" + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/token" + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/userinfo" + }, + "maxAge": { + "type": "integer", + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", + "format": "int32", + "example": 3600, + "nullable": true + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "wellKnownURL", + "authorizationURL", + "tokenURL", + "userInfoURL" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "qibI2x0000000000000000000000000006L2YFoG", + "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "prompt": [ + "none" + ], + "wellKnownURL": "https:\/\/myoauth.com\/.well-known\/openid-configuration", + "authorizationURL": "https:\/\/myoauth.com\/oauth2\/authorize", + "tokenURL": "https:\/\/myoauth.com\/oauth2\/token", + "userInfoURL": "https:\/\/myoauth.com\/oauth2\/userinfo", + "maxAge": 3600 + } + }, + "oAuth2Okta": { + "description": "OAuth2Okta", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Okta OAuth2 client ID.", + "example": "0oa00000000000000698" + }, + "clientSecret": { + "type": "string", + "description": "Okta OAuth2 client secret.", + "example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" + }, + "prompt": { + "type": "array", + "description": "Okta OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, + "domain": { + "type": "string", + "description": "Okta OAuth2 domain.", + "example": "trial-6400025.okta.com" + }, + "authorizationServerId": { + "type": "string", + "description": "Okta OAuth2 authorization server ID.", + "example": "aus000000000000000h7z" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "domain", + "authorizationServerId" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "0oa00000000000000698", + "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "prompt": [ + "none" + ], + "domain": "trial-6400025.okta.com", + "authorizationServerId": "aus000000000000000h7z" + } + }, + "oAuth2Kick": { + "description": "OAuth2Kick", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Kick OAuth2 client ID.", + "example": "01KQ7C00000000000001MFHS32" + }, + "clientSecret": { + "type": "string", + "description": "Kick OAuth2 client secret.", + "example": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "01KQ7C00000000000001MFHS32", + "clientSecret": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + } + }, + "oAuth2Apple": { + "description": "OAuth2Apple", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "apple" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "serviceId": { + "type": "string", + "description": "Apple OAuth2 service ID.", + "example": "ip.appwrite.app.web" + }, + "keyId": { + "type": "string", + "description": "Apple OAuth2 key ID.", + "example": "P4000000N8" + }, + "teamId": { + "type": "string", + "description": "Apple OAuth2 team ID.", + "example": "D4000000R6" + }, + "p8File": { + "type": "string", + "description": "Apple OAuth2 .p8 private key file contents. The secret key wrapped by the PEM markers is 200 characters long.", + "example": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" + }, + "nativeEnabled": { + "type": "boolean", + "description": "Native Sign in with Apple is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", + "example": false + }, + "nativeClientIds": { + "type": "array", + "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple, next to the Services ID.", + "items": { + "type": "string" + }, + "example": [ + "com.example.app" + ] + } + }, + "required": [ + "$id", + "enabled", + "serviceId", + "keyId", + "teamId", + "p8File", + "nativeEnabled", + "nativeClientIds" + ], + "example": { + "$id": "apple", + "enabled": false, + "serviceId": "ip.appwrite.app.web", + "keyId": "P4000000N8", + "teamId": "D4000000R6", + "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "nativeEnabled": false, + "nativeClientIds": [ + "com.example.app" + ] + } + }, + "oAuth2Microsoft": { + "description": "OAuth2Microsoft", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "applicationId": { + "type": "string", + "description": "Microsoft OAuth2 application ID.", + "example": "00001111-aaaa-2222-bbbb-3333cccc4444" + }, + "applicationSecret": { + "type": "string", + "description": "Microsoft OAuth2 application secret.", + "example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" + }, + "prompt": { + "type": "array", + "description": "Microsoft OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, + "tenant": { + "type": "string", + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", + "example": "common" + } + }, + "required": [ + "$id", + "enabled", + "applicationId", + "applicationSecret", + "prompt", + "tenant" + ], + "example": { + "$id": "github", + "enabled": false, + "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", + "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "prompt": [ + "none" + ], + "tenant": "common" + } + }, + "oAuth2Resend": { + "description": "OAuth2Resend", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Resend OAuth2 client ID.", + "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + }, + "clientSecret": { + "type": "string", + "description": "Resend OAuth2 client secret.", + "example": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "clientSecret": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" + } + }, + "oAuth2TikTok": { + "description": "OAuth2TikTok", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "TikTok OAuth2 client key.", + "example": "awz000000000tyw0" + }, + "clientSecret": { + "type": "string", + "description": "TikTok OAuth2 client secret.", + "example": "6wXewM00000000000000000000yXnite" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "awz000000000tyw0", + "clientSecret": "6wXewM00000000000000000000yXnite" + } + }, + "oAuth2Kakao": { + "description": "OAuth2Kakao", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Kakao OAuth2 REST API key.", + "example": "839ff5000000000000000000013206de" + }, + "clientSecret": { + "type": "string", + "description": "Kakao OAuth2 client secret.", + "example": "jLNVOK00000000000000000000yJebea" + }, + "prompt": { + "type": "array", + "description": "Kakao OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "839ff5000000000000000000013206de", + "clientSecret": "jLNVOK00000000000000000000yJebea", + "prompt": [ + "none" + ] + } + }, + "oAuth2ProviderList": { + "description": "OAuth2 Providers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of OAuth2 providers in the given project.", + "format": "int32", + "example": 5 + }, + "providers": { + "type": "array", + "description": "List of OAuth2 providers.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/oAuth2Github" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Discord" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Figma" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Box" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Google" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + }, + { + "$ref": "#\/components\/schemas\/oAuth2X" + }, + { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Slack" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Podio" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Notion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Appwrite" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + }, + { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Apple" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Okta" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kick" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + }, + { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Resend" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + }, + { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/components\/schemas\/oAuth2Github", + "discord": "#\/components\/schemas\/oAuth2Discord", + "figma": "#\/components\/schemas\/oAuth2Figma", + "dropbox": "#\/components\/schemas\/oAuth2Dropbox", + "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", + "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", + "bitly": "#\/components\/schemas\/oAuth2Bitly", + "box": "#\/components\/schemas\/oAuth2Box", + "autodesk": "#\/components\/schemas\/oAuth2Autodesk", + "google": "#\/components\/schemas\/oAuth2Google", + "zoom": "#\/components\/schemas\/oAuth2Zoom", + "zoho": "#\/components\/schemas\/oAuth2Zoho", + "yandex": "#\/components\/schemas\/oAuth2Yandex", + "x": "#\/components\/schemas\/oAuth2X", + "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "webflow": "#\/components\/schemas\/oAuth2Webflow", + "twitch": "#\/components\/schemas\/oAuth2Twitch", + "stripe": "#\/components\/schemas\/oAuth2Stripe", + "spotify": "#\/components\/schemas\/oAuth2Spotify", + "slack": "#\/components\/schemas\/oAuth2Slack", + "podio": "#\/components\/schemas\/oAuth2Podio", + "notion": "#\/components\/schemas\/oAuth2Notion", + "salesforce": "#\/components\/schemas\/oAuth2Salesforce", + "yahoo": "#\/components\/schemas\/oAuth2Yahoo", + "linkedin": "#\/components\/schemas\/oAuth2Linkedin", + "disqus": "#\/components\/schemas\/oAuth2Disqus", + "amazon": "#\/components\/schemas\/oAuth2Amazon", + "etsy": "#\/components\/schemas\/oAuth2Etsy", + "facebook": "#\/components\/schemas\/oAuth2Facebook", + "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", + "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", + "paypal": "#\/components\/schemas\/oAuth2Paypal", + "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", + "gitlab": "#\/components\/schemas\/oAuth2Gitlab", + "appwrite": "#\/components\/schemas\/oAuth2Appwrite", + "authentik": "#\/components\/schemas\/oAuth2Authentik", + "auth0": "#\/components\/schemas\/oAuth2Auth0", + "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", + "keycloak": "#\/components\/schemas\/oAuth2Keycloak", + "oidc": "#\/components\/schemas\/oAuth2Oidc", + "apple": "#\/components\/schemas\/oAuth2Apple", + "okta": "#\/components\/schemas\/oAuth2Okta", + "kick": "#\/components\/schemas\/oAuth2Kick", + "microsoft": "#\/components\/schemas\/oAuth2Microsoft", + "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", + "resend": "#\/components\/schemas\/oAuth2Resend", + "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", + "tiktok": "#\/components\/schemas\/oAuth2TikTok", + "kakao": "#\/components\/schemas\/oAuth2Kakao" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "providers" + ], + "example": { + "total": 5, + "providers": "" + } + }, + "policyPasswordDictionary": { + "description": "Policy Password Dictionary", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password dictionary policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyPasswordHistory": { + "description": "Policy Password History", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Password history length. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 5 + } + }, + "policyPasswordStrength": { + "description": "Policy Password Strength", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "min": { + "type": "integer", + "description": "Minimum password length required for user passwords.", + "format": "int32", + "example": 12 + }, + "uppercase": { + "type": "boolean", + "description": "Whether passwords must include at least one uppercase letter.", + "example": true + }, + "lowercase": { + "type": "boolean", + "description": "Whether passwords must include at least one lowercase letter.", + "example": true + }, + "number": { + "type": "boolean", + "description": "Whether passwords must include at least one number.", + "example": true + }, + "symbols": { + "type": "boolean", + "description": "Whether passwords must include at least one symbol.", + "example": true + } + }, + "required": [ + "$id", + "min", + "uppercase", + "lowercase", + "number", + "symbols" + ], + "example": { + "$id": "password-dictionary", + "min": 12, + "uppercase": true, + "lowercase": true, + "number": true, + "symbols": true + } + }, + "policyPasswordPersonalData": { + "description": "Policy Password Personal Data", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password personal data policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyPasswordPwned": { + "description": "Policy Password Pwned", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether passwords are checked against known data breaches and the result recorded on the user.", + "example": true + }, + "sessions": { + "type": "boolean", + "description": "Whether a sign-in with a breached password is refused until the password is reset.", + "example": false + }, + "users": { + "type": "boolean", + "description": "Whether a breached password is rejected when a user signs up or sets a new password.", + "example": false + } + }, + "required": [ + "$id", + "enabled", + "sessions", + "users" + ], + "example": { + "$id": "password-dictionary", + "enabled": true, + "sessions": false, + "users": false + } + }, + "policySessionAlert": { + "description": "Policy Session Alert", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session alert policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policySessionDuration": { + "description": "Policy Session Duration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "duration": { + "type": "integer", + "description": "Session duration in seconds.", + "format": "int32", + "example": 3600 + } + }, + "required": [ + "$id", + "duration" + ], + "example": { + "$id": "password-dictionary", + "duration": 3600 + } + }, + "policySessionInvalidation": { + "description": "Policy Session Invalidation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session invalidation policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policySessionLimit": { + "description": "Policy Session Limit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Maximum number of sessions allowed per user. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 10 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 10 + } + }, + "policyUserLimit": { + "description": "Policy User Limit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Maximum number of users allowed in the project. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 100 + } + }, + "policyMembershipPrivacy": { + "description": "Policy Membership Privacy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "userId": { + "type": "boolean", + "description": "Whether user ID is visible in memberships.", + "example": true + }, + "userEmail": { + "type": "boolean", + "description": "Whether user email is visible in memberships.", + "example": true + }, + "userPhone": { + "type": "boolean", + "description": "Whether user phone is visible in memberships.", + "example": true + }, + "userName": { + "type": "boolean", + "description": "Whether user name is visible in memberships.", + "example": true + }, + "userMFA": { + "type": "boolean", + "description": "Whether user MFA status is visible in memberships.", + "example": true + }, + "userAccessedAt": { + "type": "boolean", + "description": "Whether user last access time is visible in memberships.", + "example": true + } + }, + "required": [ + "$id", + "userId", + "userEmail", + "userPhone", + "userName", + "userMFA", + "userAccessedAt" + ], + "example": { + "$id": "password-dictionary", + "userId": true, + "userEmail": true, + "userPhone": true, + "userName": true, + "userMFA": true, + "userAccessedAt": true + } + }, + "policyMfaFactors": { + "description": "Policy MFA Factors", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "totp": { + "type": "boolean", + "description": "Whether TOTP can be used to complete an MFA challenge.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Whether email can be used to complete an MFA challenge.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Whether phone (SMS) can be used to complete an MFA challenge.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Whether the custom factor can be used to complete an MFA challenge.", + "example": true + } + }, + "required": [ + "$id", + "totp", + "email", + "phone", + "custom" + ], + "example": { + "$id": "password-dictionary", + "totp": true, + "email": true, + "phone": true, + "custom": true + } + }, + "policyPasskey": { + "description": "Policy Passkey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "rpId": { + "type": "string", + "description": "Relying party ID passkeys are bound to. Empty until configured.", + "example": "example.com" + }, + "origins": { + "type": "array", + "description": "Web origins allowed to register and sign in with passkeys.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com" + ] + } + }, + "required": [ + "$id", + "rpId", + "origins" + ], + "example": { + "$id": "password-dictionary", + "rpId": "example.com", + "origins": [ + "https:\/\/example.com" + ] + } + }, + "policyDenyAliasedEmail": { + "description": "Policy Deny Aliased Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny aliased email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyDisposableEmail": { + "description": "Policy Deny Disposable Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny disposable email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyFreeEmail": { + "description": "Policy Deny Free Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny free email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyCorporateEmail": { + "description": "Policy Deny Corporate Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny non-corporate email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "platformWeb": { + "description": "Platform Web", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "hostname": { + "type": "string", + "description": "Web app hostname. Empty string for other platforms.", + "example": "app.example.com" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "hostname", + "key" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "hostname": "app.example.com" + } + }, + "platformApple": { + "description": "Platform Apple", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "bundleIdentifier" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "bundleIdentifier": "com.company.appname" + } + }, + "platformAndroid": { + "description": "Platform Android", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "applicationId": { + "type": "string", + "description": "Android application ID.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "applicationId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "applicationId": "com.company.appname" + } + }, + "platformWindows": { + "description": "Platform Windows", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageIdentifierName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "packageIdentifierName": "com.company.appname" + } + }, + "platformLinux": { + "description": "Platform Linux", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "packageName": { + "type": "string", + "description": "Linux package name.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "packageName": "com.company.appname" + } + }, + "platformList": { + "description": "Platforms List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of platforms in the given project.", + "format": "int32", + "example": 5 + }, + "platforms": { + "type": "array", + "description": "List of platforms.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/platformWeb" + }, + { + "$ref": "#\/components\/schemas\/platformApple" + }, + { + "$ref": "#\/components\/schemas\/platformAndroid" + }, + { + "$ref": "#\/components\/schemas\/platformWindows" + }, + { + "$ref": "#\/components\/schemas\/platformLinux" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "web": "#\/components\/schemas\/platformWeb", + "apple": "#\/components\/schemas\/platformApple", + "android": "#\/components\/schemas\/platformAndroid", + "windows": "#\/components\/schemas\/platformWindows", + "linux": "#\/components\/schemas\/platformLinux" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "platforms" + ], + "example": { + "total": 5, + "platforms": "" + } + }, + "variable": { + "description": "Variable", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Variable ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Variable key.", + "example": "API_KEY" + }, + "value": { + "type": "string", + "description": "Variable value.", + "example": "myPa$$word1" + }, + "secret": { + "type": "boolean", + "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", + "example": false + }, + "resourceType": { + "type": "string", + "description": "Service to which the variable belongs. Possible values are \"project\", \"function\"", + "example": "function" + }, + "resourceId": { + "type": "string", + "description": "ID of resource to which the variable belongs. If resourceType is \"project\", it is empty. If resourceType is \"function\", it is ID of the function.", + "example": "myAwesomeFunction" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "value", + "secret", + "resourceType", + "resourceId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "API_KEY", + "value": "myPa$$word1", + "secret": false, + "resourceType": "function", + "resourceId": "myAwesomeFunction" + } + }, + "country": { + "description": "Country", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "code": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "United States", + "code": "US" + } + }, + "continent": { + "description": "Continent", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Continent name.", + "example": "Europe" + }, + "code": { + "type": "string", + "description": "Continent two letter code.", + "example": "EU" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "Europe", + "code": "EU" + } + }, + "language": { + "description": "Language", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Language name.", + "example": "Italian" + }, + "code": { + "type": "string", + "description": "Language two-character ISO 639-1 codes.", + "example": "it" + }, + "nativeName": { + "type": "string", + "description": "Language native name.", + "example": "Italiano" + } + }, + "required": [ + "name", + "code", + "nativeName" + ], + "example": { + "name": "Italian", + "code": "it", + "nativeName": "Italiano" + } + }, + "currency": { + "description": "Currency", + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "Currency symbol.", + "example": "$" + }, + "name": { + "type": "string", + "description": "Currency name.", + "example": "US dollar" + }, + "symbolNative": { + "type": "string", + "description": "Currency native symbol.", + "example": "$" + }, + "decimalDigits": { + "type": "integer", + "description": "Number of decimal digits.", + "format": "int32", + "example": 2 + }, + "rounding": { + "type": "number", + "description": "Currency digit rounding.", + "format": "double", + "example": 0 + }, + "code": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", + "example": "USD" + }, + "namePlural": { + "type": "string", + "description": "Currency plural name", + "example": "US dollars" + } + }, + "required": [ + "symbol", + "name", + "symbolNative", + "decimalDigits", + "rounding", + "code", + "namePlural" + ], + "example": { + "symbol": "$", + "name": "US dollar", + "symbolNative": "$", + "decimalDigits": 2, + "rounding": 0, + "code": "USD", + "namePlural": "US dollars" + } + }, + "phone": { + "description": "Phone", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Phone code.", + "example": "+1" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + } + }, + "required": [ + "code", + "countryCode", + "countryName" + ], + "example": { + "code": "+1", + "countryCode": "US", + "countryName": "United States" + } + }, + "metric": { + "description": "Metric", + "type": "object", + "properties": { + "value": { + "type": "integer", + "description": "The value of this metric at the timestamp.", + "format": "int32", + "example": 1 + }, + "date": { + "type": "string", + "description": "The date at which this metric was aggregated in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "value", + "date" + ], + "example": { + "value": 1, + "date": "2020-10-15T06:38:00.000+00:00" + } + }, + "usageUsers": { + "description": "UsageUsers", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "example": "30d" + }, + "usersTotal": { + "type": "integer", + "description": "Total aggregated number of statistics of users.", + "format": "int32", + "example": 0 + }, + "sessionsTotal": { + "type": "integer", + "description": "Total aggregated number of active sessions.", + "format": "int32", + "example": 0 + }, + "users": { + "type": "array", + "description": "Aggregated number of users per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "sessions": { + "type": "array", + "description": "Aggregated number of active sessions per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + } + }, + "required": [ + "range", + "usersTotal", + "sessionsTotal", + "users", + "sessions" + ], + "example": { + "range": "30d", + "usersTotal": 0, + "sessionsTotal": 0, + "users": [], + "sessions": [] + } + }, + "usagePresence": { + "description": "UsagePresence", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "example": "30d" + }, + "usersOnlineTotal": { + "type": "integer", + "description": "Current total number of online users.", + "format": "int32", + "example": 0 + }, + "presences": { + "type": "array", + "description": "Aggregated number of online users per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + } + }, + "required": [ + "range", + "usersOnlineTotal", + "presences" + ], + "example": { + "range": "30d", + "usersOnlineTotal": 0, + "presences": [] + } + }, + "usageDataPoint": { + "description": "usageDataPoint", + "type": "object", + "properties": { + "time": { + "type": "string", + "description": "Bucket start timestamp in ISO 8601. Omitted for flat dimension aggregates.", + "example": "2026-04-09T12:00:00.000+00:00", + "nullable": true + }, + "value": { + "type": "number", + "description": "Aggregated value for the point.", + "format": "double", + "example": 5000 + }, + "path": { + "type": "string", + "description": "Value when broken down by `path`.", + "example": "\/v1\/storage\/files", + "nullable": true + }, + "method": { + "type": "string", + "description": "Value when broken down by `method`.", + "example": "POST", + "nullable": true + }, + "status": { + "type": "string", + "description": "Value when broken down by `status`.", + "example": "201", + "nullable": true + }, + "service": { + "type": "string", + "description": "Value when broken down by `service`.", + "example": "storage", + "nullable": true + }, + "country": { + "type": "string", + "description": "Value when broken down by `country`.", + "example": "us", + "nullable": true + }, + "region": { + "type": "string", + "description": "Value when broken down by `region`.", + "example": "default", + "nullable": true + }, + "hostname": { + "type": "string", + "description": "Value when broken down by `hostname`.", + "example": "app.example.com", + "nullable": true + }, + "ip": { + "type": "string", + "description": "Value when broken down by `ip`.", + "example": "192.0.2.44", + "nullable": true + }, + "protocol": { + "type": "string", + "description": "Value when broken down by `protocol`.", + "example": "https", + "nullable": true + }, + "accept": { + "type": "string", + "description": "Value when broken down by `accept`.", + "example": "application\/json", + "nullable": true + }, + "acceptLanguage": { + "type": "string", + "description": "Value when broken down by `acceptLanguage`.", + "example": "en-US", + "nullable": true + }, + "queryKeys": { + "type": "string", + "description": "Value when broken down by `queryKeys`.", + "example": "project,mode", + "nullable": true + }, + "osName": { + "type": "string", + "description": "Value when broken down by `osName`.", + "example": "iOS", + "nullable": true + }, + "clientType": { + "type": "string", + "description": "Value when broken down by `clientType`.", + "example": "browser", + "nullable": true + }, + "clientName": { + "type": "string", + "description": "Value when broken down by `clientName`.", + "example": "Chrome", + "nullable": true + }, + "sdk": { + "type": "string", + "description": "Value when broken down by `sdk`.", + "example": "web", + "nullable": true + }, + "sdkVersion": { + "type": "string", + "description": "Value when broken down by `sdkVersion`.", + "example": "14.0.0", + "nullable": true + }, + "deviceName": { + "type": "string", + "description": "Value when broken down by `deviceName`.", + "example": "smartphone", + "nullable": true + }, + "resourceId": { + "type": "string", + "description": "Value when broken down by `resourceId`.", + "example": "abc123", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "Value when broken down by `resourceType`.", + "example": "bucket", + "nullable": true + }, + "ordinal": { + "type": "string", + "description": "Value when broken down by `ordinal`.", + "example": "0", + "nullable": true + }, + "continentCode": { + "type": "string", + "description": "Continent code when broken down by `continentCode`.", + "example": "NA", + "nullable": true + }, + "city": { + "type": "string", + "description": "City name when broken down by `city`.", + "example": "Mountain View", + "nullable": true + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain when broken down by `subdivisions`.", + "example": "California", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code when broken down by `postalCode`.", + "example": "94043", + "nullable": true + }, + "latitude": { + "type": "string", + "description": "Latitude when broken down by `latitude`.", + "example": "37.4223", + "nullable": true + }, + "longitude": { + "type": "string", + "description": "Longitude when broken down by `longitude`.", + "example": "-122.0848", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Time zone when broken down by `timeZone`.", + "example": "America\/Los_Angeles", + "nullable": true + }, + "weatherCode": { + "type": "string", + "description": "Weather station code when broken down by `weatherCode`.", + "example": "USCA0746", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider when broken down by `isp`.", + "example": "Google", + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) when broken down by `autonomousSystemNumber`.", + "example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization owning the ASN when broken down by `autonomousSystemOrganization`.", + "example": "GOOGLE", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type when broken down by `connectionType`.", + "example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "Connection usage type when broken down by `connectionUsageType`.", + "example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP when broken down by `connectionOrganization`.", + "example": "Google LLC", + "nullable": true + }, + "teamId": { + "type": "string", + "description": "Owning team ID when broken down by `teamId`.", + "example": "team_abc", + "nullable": true + } + }, + "required": [ + "value" + ], + "example": { + "time": "2026-04-09T12:00:00.000+00:00", + "value": 5000, + "path": "\/v1\/storage\/files", + "method": "POST", + "status": "201", + "service": "storage", + "country": "us", + "region": "default", + "hostname": "app.example.com", + "ip": "192.0.2.44", + "protocol": "https", + "accept": "application\/json", + "acceptLanguage": "en-US", + "queryKeys": "project,mode", + "osName": "iOS", + "clientType": "browser", + "clientName": "Chrome", + "sdk": "web", + "sdkVersion": "14.0.0", + "deviceName": "smartphone", + "resourceId": "abc123", + "resourceType": "bucket", + "ordinal": "0", + "continentCode": "NA", + "city": "Mountain View", + "subdivisions": "California", + "postalCode": "94043", + "latitude": "37.4223", + "longitude": "-122.0848", + "timeZone": "America\/Los_Angeles", + "weatherCode": "USCA0746", + "isp": "Google", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC", + "teamId": "team_abc" + } + }, + "usageMetric": { + "description": "usageMetric", + "type": "object", + "properties": { + "metric": { + "type": "string", + "description": "Metric key this series describes.", + "example": "files.storage" + }, + "points": { + "type": "array", + "description": "Data points in the requested order.", + "items": { + "$ref": "#\/components\/schemas\/usageDataPoint" + }, + "example": [] + } + }, + "required": [ + "metric", + "points" + ], + "example": { + "metric": "files.storage", + "points": "" + } + }, + "usageEventList": { + "description": "usageEventList", + "type": "object", + "properties": { + "interval": { + "type": "string", + "description": "Requested interval, or an empty string for a flat aggregate.", + "example": "1h" + }, + "metrics": { + "type": "array", + "description": "One series per requested event metric.", + "items": { + "$ref": "#\/components\/schemas\/usageMetric" + }, + "example": [] + } + }, + "required": [ + "interval", + "metrics" + ], + "example": { + "interval": "1h", + "metrics": "" + } + }, + "usageGaugeList": { + "description": "usageGaugeList", + "type": "object", + "properties": { + "interval": { + "type": "string", + "description": "Requested interval, or an empty string for a flat aggregate.", + "example": "1h" + }, + "metrics": { + "type": "array", + "description": "One series per requested gauge metric.", + "items": { + "$ref": "#\/components\/schemas\/usageMetric" + }, + "example": [] + } + }, + "required": [ + "interval", + "metrics" + ], + "example": { + "interval": "1h", + "metrics": "" + } + }, + "headers": { + "description": "Headers", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Header name.", + "example": "Content-Type" + }, + "value": { + "type": "string", + "description": "Header value.", + "example": "application\/json" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "Content-Type", + "value": "application\/json" + } + }, + "specification": { + "description": "Specification", + "type": "object", + "properties": { + "memory": { + "type": "integer", + "description": "Memory size in MB.", + "format": "int32", + "example": 512 + }, + "cpus": { + "type": "number", + "description": "Number of CPUs.", + "format": "double", + "example": 1 + }, + "enabled": { + "type": "boolean", + "description": "Is size enabled.", + "example": true + }, + "slug": { + "type": "string", + "description": "Size slug.", + "example": "s-1vcpu-512mb" + } + }, + "required": [ + "memory", + "cpus", + "enabled", + "slug" + ], + "example": { + "memory": 512, + "cpus": 1, + "enabled": true, + "slug": "s-1vcpu-512mb" + } + }, + "proxyRule": { + "description": "Rule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Rule creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Rule update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", + "example": "deployment" + }, + "trigger": { + "type": "string", + "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", + "example": "manual" + }, + "redirectUrl": { + "type": "string", + "description": "URL to redirect to. Used if type is \"redirect\"", + "example": "https:\/\/appwrite.io\/docs" + }, + "redirectStatusCode": { + "type": "integer", + "description": "Status code to apply during redirect. Used if type is \"redirect\"", + "format": "int32", + "example": 301 + }, + "deploymentId": { + "type": "string", + "description": "ID of deployment. Used if type is \"deployment\"", + "example": "n3u9feiwmf" + }, + "deploymentResourceType": { + "description": "Type of deployment resource: function, site, or dedicatedDatabase.", + "example": "function", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "site" + ], + "title": "site" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabase" + ], + "title": "dedicatedDatabase" + } + ], + "nullable": true + }, + "deploymentResourceId": { + "type": "string", + "description": "ID of deployment's resource (site or function ID). Used if type is \"deployment\"", + "example": "n3u9feiwmf" + }, + "deploymentVcsProviderBranch": { + "type": "string", + "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", + "example": "main" + }, + "status": { + "description": "Domain verification status. Possible values are \"unverified\", \"verifying\", \"verified\"", + "example": "verified", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "unverified" + ], + "title": "unverified" + }, + { + "type": "string", + "enum": [ + "verifying" + ], + "title": "verifying" + }, + { + "type": "string", + "enum": [ + "verified" + ], + "title": "verified" + } + ] + }, + "logs": { + "type": "string", + "description": "Logs from rule verification or certificate generation. Certificate generation logs are prioritized if both are available.", + "example": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record." + }, + "renewAt": { + "type": "string", + "description": "Certificate auto-renewal date in ISO 8601 format.", + "example": "datetime" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domain", + "type", + "trigger", + "redirectUrl", + "redirectStatusCode", + "deploymentId", + "deploymentResourceId", + "deploymentVcsProviderBranch", + "status", + "logs", + "renewAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domain": "appwrite.company.com", + "type": "deployment", + "trigger": "manual", + "redirectUrl": "https:\/\/appwrite.io\/docs", + "redirectStatusCode": 301, + "deploymentId": "n3u9feiwmf", + "deploymentResourceType": "function", + "deploymentResourceId": "n3u9feiwmf", + "deploymentVcsProviderBranch": "main", + "status": "verified", + "logs": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record.", + "renewAt": "datetime" + } + }, + "schedule": { + "description": "Schedule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Schedule ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Schedule creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Schedule update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "The resource type associated with this schedule.", + "example": "function" + }, + "resourceId": { + "type": "string", + "description": "The resource ID associated with this schedule.", + "example": "5e5ea5c16897e" + }, + "resourceUpdatedAt": { + "type": "string", + "description": "Change-tracking timestamp used by the scheduler to detect resource changes in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "The project ID associated with this schedule.", + "example": "5e5ea5c16897e" + }, + "schedule": { + "type": "string", + "description": "The CRON schedule expression.", + "example": "5 4 * * *" + }, + "data": { + "type": "object", + "additionalProperties": true, + "description": "Schedule data used to store resource-specific context needed for execution.", + "example": {} + }, + "active": { + "type": "boolean", + "description": "Whether the schedule is active.", + "example": true + }, + "region": { + "type": "string", + "description": "The region where the schedule is deployed.", + "example": "fra" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "resourceType", + "resourceId", + "resourceUpdatedAt", + "projectId", + "schedule", + "data", + "active", + "region" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "function", + "resourceId": "5e5ea5c16897e", + "resourceUpdatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "schedule": "5 4 * * *", + "data": {}, + "active": true, + "region": "fra" + } + }, + "stage": { + "description": "Stage", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Stage ID.", + "example": "tablesDB.create" + }, + "sdk": { + "type": "string", + "description": "SDK method key (namespace.name) for this stage.", + "example": "tablesDB.create" + }, + "status": { + "type": "string", + "description": "Stage status.", + "example": "completed" + }, + "at": { + "type": "string", + "description": "When the stage was completed or skipped, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "actorType": { + "type": "string", + "description": "Actor type when the stage was recorded.", + "example": "user" + } + }, + "required": [ + "id", + "sdk", + "status", + "at", + "actorType" + ], + "example": { + "id": "tablesDB.create", + "sdk": "tablesDB.create", + "status": "completed", + "at": "2020-10-15T06:38:00.000+00:00", + "actorType": "user" + } + }, + "emailTemplate": { + "description": "EmailTemplate", + "type": "object", + "properties": { + "templateId": { + "type": "string", + "description": "Template type", + "example": "verification" + }, + "locale": { + "type": "string", + "description": "Template locale", + "example": "en_us" + }, + "message": { + "type": "string", + "description": "Template message", + "example": "Click on the link to verify your account." + }, + "senderName": { + "type": "string", + "description": "Name of the sender", + "example": "My User" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "example": "mail@appwrite.io" + }, + "replyToEmail": { + "type": "string", + "description": "Reply to email address", + "example": "emails@appwrite.io" + }, + "replyToName": { + "type": "string", + "description": "Reply to name", + "example": "Support Team" + }, + "subject": { + "type": "string", + "description": "Email subject", + "example": "Please verify your email address" + } + }, + "required": [ + "templateId", + "locale", + "message", + "senderName", + "senderEmail", + "replyToEmail", + "replyToName", + "subject" + ], + "example": { + "templateId": "verification", + "locale": "en_us", + "message": "Click on the link to verify your account.", + "senderName": "My User", + "senderEmail": "mail@appwrite.io", + "replyToEmail": "emails@appwrite.io", + "replyToName": "Support Team", + "subject": "Please verify your email address" + } + }, + "consoleVariables": { + "description": "Console Variables", + "type": "object", + "properties": { + "_APP_DOMAIN_TARGET_CNAME": { + "type": "string", + "description": "CNAME target for your Appwrite custom domains.", + "example": "appwrite.io" + }, + "_APP_DOMAIN_TARGET_A": { + "type": "string", + "description": "A target for your Appwrite custom domains.", + "example": "127.0.0.1" + }, + "_APP_COMPUTE_BUILD_TIMEOUT": { + "type": "integer", + "description": "Maximum build timeout in seconds.", + "format": "int32", + "example": 900 + }, + "_APP_DOMAIN_TARGET_AAAA": { + "type": "string", + "description": "AAAA target for your Appwrite custom domains.", + "example": "::1" + }, + "_APP_DOMAIN_TARGET_CAA": { + "type": "string", + "description": "CAA target for your Appwrite custom domains.", + "example": "digicert.com" + }, + "_APP_STORAGE_LIMIT": { + "type": "integer", + "description": "Maximum file size allowed for file upload in bytes.", + "format": "int32", + "example": 30000000 + }, + "_APP_COMPUTE_SIZE_LIMIT": { + "type": "integer", + "description": "Maximum file size allowed for deployment in bytes.", + "format": "int32", + "example": 30000000 + }, + "_APP_USAGE_STATS": { + "type": "string", + "description": "Defines if usage stats are enabled. This value is set to 'enabled' by default, to disable the usage stats set the value to 'disabled'.", + "example": "enabled" + }, + "_APP_VCS_ENABLED": { + "type": "boolean", + "description": "Defines if VCS (Version Control System) is enabled.", + "example": true + }, + "_APP_VCS_PROVIDERS": { + "type": "array", + "description": "List of configured VCS providers.", + "items": { + "type": "string" + }, + "example": [ + "github" + ] + }, + "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION": { + "type": "array", + "description": "List of configured VCS providers that support repository creation.", + "items": { + "type": "string" + }, + "example": [ + "github" + ] + }, + "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES": { + "type": "array", + "description": "List of configured VCS providers that can host public repositories.", + "items": { + "type": "string" + }, + "example": [ + "github" + ] + }, + "_APP_DOMAIN_ENABLED": { + "type": "boolean", + "description": "Defines if main domain is configured. If so, custom domains can be created.", + "example": true + }, + "_APP_DOMAIN_SITES": { + "type": "string", + "description": "A comma separated list of domains to use for site URLs.", + "example": "sites.localhost,sites.example.com" + }, + "_APP_DOMAIN_FUNCTIONS": { + "type": "string", + "description": "A domain to use for function URLs.", + "example": "functions.localhost" + }, + "_APP_OPTIONS_FORCE_HTTPS": { + "type": "string", + "description": "Defines if HTTPS is enforced for all requests.", + "example": "enabled" + }, + "_APP_DOMAINS_NAMESERVERS": { + "type": "string", + "description": "Comma-separated list of nameservers.", + "example": "ns1.example.com,ns2.example.com" + }, + "_APP_DB_ADAPTER": { + "type": "string", + "description": "Database adapter in use.", + "example": "mysql" + }, + "supportForRelationships": { + "type": "boolean", + "description": "Whether the database adapter supports relationships.", + "example": true + }, + "supportForOperators": { + "type": "boolean", + "description": "Whether the database adapter supports operators.", + "example": true + }, + "supportForSpatials": { + "type": "boolean", + "description": "Whether the database adapter supports spatial attributes.", + "example": true + }, + "supportForSpatialIndexNull": { + "type": "boolean", + "description": "Whether the database adapter supports spatial indexes on nullable columns.", + "example": false + }, + "supportForFulltextWildcard": { + "type": "boolean", + "description": "Whether the database adapter supports fulltext wildcard search.", + "example": true + }, + "supportForMultipleFulltextIndexes": { + "type": "boolean", + "description": "Whether the database adapter supports multiple fulltext indexes per collection.", + "example": true + }, + "supportForAttributeResizing": { + "type": "boolean", + "description": "Whether the database adapter supports resizing attributes.", + "example": true + }, + "supportForSchemas": { + "type": "boolean", + "description": "Whether the database adapter supports fixed schemas with row width limits.", + "example": true + }, + "maxIndexLength": { + "type": "integer", + "description": "Maximum index length supported by the database adapter.", + "format": "int32", + "example": 768 + }, + "supportForIntegerIds": { + "type": "boolean", + "description": "Whether the database adapter uses integer sequence IDs.", + "example": true + }, + "_APP_CONSOLE_EMAIL_VERIFICATION": { + "type": "string", + "description": "Whether email verification for console users is required. Can be \"true\" or \"false\".", + "example": "true" + } + }, + "required": [ + "_APP_DOMAIN_TARGET_CNAME", + "_APP_DOMAIN_TARGET_A", + "_APP_COMPUTE_BUILD_TIMEOUT", + "_APP_DOMAIN_TARGET_AAAA", + "_APP_DOMAIN_TARGET_CAA", + "_APP_STORAGE_LIMIT", + "_APP_COMPUTE_SIZE_LIMIT", + "_APP_USAGE_STATS", + "_APP_VCS_ENABLED", + "_APP_VCS_PROVIDERS", + "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION", + "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES", + "_APP_DOMAIN_ENABLED", + "_APP_DOMAIN_SITES", + "_APP_DOMAIN_FUNCTIONS", + "_APP_OPTIONS_FORCE_HTTPS", + "_APP_DOMAINS_NAMESERVERS", + "_APP_DB_ADAPTER", + "supportForRelationships", + "supportForOperators", + "supportForSpatials", + "supportForSpatialIndexNull", + "supportForFulltextWildcard", + "supportForMultipleFulltextIndexes", + "supportForAttributeResizing", + "supportForSchemas", + "maxIndexLength", + "supportForIntegerIds", + "_APP_CONSOLE_EMAIL_VERIFICATION" + ], + "example": { + "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", + "_APP_DOMAIN_TARGET_A": "127.0.0.1", + "_APP_COMPUTE_BUILD_TIMEOUT": 900, + "_APP_DOMAIN_TARGET_AAAA": "::1", + "_APP_DOMAIN_TARGET_CAA": "digicert.com", + "_APP_STORAGE_LIMIT": "30000000", + "_APP_COMPUTE_SIZE_LIMIT": "30000000", + "_APP_USAGE_STATS": "enabled", + "_APP_VCS_ENABLED": true, + "_APP_VCS_PROVIDERS": [ + "github" + ], + "_APP_VCS_PROVIDERS_WITH_REPOSITORY_CREATION": [ + "github" + ], + "_APP_VCS_PROVIDERS_WITH_PUBLIC_REPOSITORIES": [ + "github" + ], + "_APP_DOMAIN_ENABLED": true, + "_APP_DOMAIN_SITES": "sites.localhost,sites.example.com", + "_APP_DOMAIN_FUNCTIONS": "functions.localhost", + "_APP_OPTIONS_FORCE_HTTPS": "enabled", + "_APP_DOMAINS_NAMESERVERS": "ns1.example.com,ns2.example.com", + "_APP_DB_ADAPTER": "mysql", + "supportForRelationships": true, + "supportForOperators": true, + "supportForSpatials": true, + "supportForSpatialIndexNull": false, + "supportForFulltextWildcard": true, + "supportForMultipleFulltextIndexes": true, + "supportForAttributeResizing": true, + "supportForSchemas": true, + "maxIndexLength": 768, + "supportForIntegerIds": true, + "_APP_CONSOLE_EMAIL_VERIFICATION": "true" + } + }, + "consoleOAuth2ProviderParameter": { + "description": "Console OAuth2 Provider Parameter", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Parameter ID. Maps to the request body field used by the project OAuth2 update endpoint (e.g. `clientId`, `appKey`, `tenant`).", + "example": "clientId" + }, + "name": { + "type": "string", + "description": "Verbose, user-facing parameter name as shown in the provider's own dashboard. Includes alternate names when the provider exposes more than one.", + "example": "Client ID or App ID" + }, + "example": { + "type": "string", + "description": "Example value for this parameter.", + "example": "e4d87900000000540733" + }, + "hint": { + "type": "string", + "description": "Optional hint for this parameter, typically calling out a common wrong value. Empty string when no hint is set.", + "example": "Example of wrong value: 370006" + } + }, + "required": [ + "$id", + "name", + "example", + "hint" + ], + "example": { + "$id": "clientId", + "name": "Client ID or App ID", + "example": "e4d87900000000540733", + "hint": "Example of wrong value: 370006" + } + }, + "consoleOAuth2Provider": { + "description": "Console OAuth2 Provider", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "parameters": { + "type": "array", + "description": "List of parameters required to configure this OAuth2 provider.", + "items": { + "$ref": "#\/components\/schemas\/consoleOAuth2ProviderParameter" + }, + "example": [] + } + }, + "required": [ + "$id", + "parameters" + ], + "example": { + "$id": "github", + "parameters": "" + } + }, + "consoleOAuth2ProviderList": { + "description": "Console OAuth2 Providers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of OAuth2 providers exposed by the server.", + "format": "int32", + "example": 5 + }, + "oAuth2Providers": { + "type": "array", + "description": "List of OAuth2 providers, each with the parameters required to configure it.", + "items": { + "$ref": "#\/components\/schemas\/consoleOAuth2Provider" + }, + "example": [] + } + }, + "required": [ + "total", + "oAuth2Providers" + ], + "example": { + "total": 5, + "oAuth2Providers": "" + } + }, + "consoleKeyScope": { + "description": "Console Key Scope", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Scope ID.", + "example": "users.read" + }, + "description": { + "type": "string", + "description": "Scope description.", + "example": "Access to read your project's users" + }, + "category": { + "type": "string", + "description": "Scope category.", + "example": "Auth" + }, + "deprecated": { + "type": "boolean", + "description": "Scope is deprecated.", + "example": true + } + }, + "required": [ + "$id", + "description", + "category", + "deprecated" + ], + "example": { + "$id": "users.read", + "description": "Access to read your project's users", + "category": "Auth", + "deprecated": true + } + }, + "consoleKeyScopeList": { + "description": "Console Key Scopes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of key scopes exposed by the server.", + "format": "int32", + "example": 5 + }, + "scopes": { + "type": "array", + "description": "List of key scopes, each with its ID and description.", + "items": { + "$ref": "#\/components\/schemas\/consoleKeyScope" + }, + "example": [] + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "mfaChallenge": { + "description": "MFA Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "mfaChallengeSecret": { + "description": "MFA Challenge Secret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "code": { + "type": "string", + "description": "Challenge code to be delivered to the end user through a custom channel.", + "example": "446372" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire", + "code" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "expire": "2020-10-15T06:38:00.000+00:00", + "code": "446372" + } + }, + "tokenSecret": { + "description": "Token Secret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. Exchange it for a session with the create session endpoint.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "passkey": { + "description": "Passkey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Passkey ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Passkey creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Passkey update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Passkey name.", + "example": "My laptop" + }, + "accessedAt": { + "type": "string", + "description": "Most recent sign-in with this passkey in ISO 8601 format. Empty until the passkey is used to sign in.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My laptop", + "accessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "passkeyChallenge": { + "description": "Passkey Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Challenge ID. When signing in, pass it back with the credential to receive a token.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Challenge creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "passkeyId": { + "type": "string", + "description": "ID of the passkey being registered. Empty for sign-in challenges.", + "example": "5e5ea5c16897e" + }, + "expire": { + "type": "string", + "description": "Challenge expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "publicKey": { + "type": "object", + "additionalProperties": true, + "description": "WebAuthn options in JSON form. Pass them to `PublicKeyCredential.parseCreationOptionsFromJSON()` when registering, or `PublicKeyCredential.parseRequestOptionsFromJSON()` when signing in.", + "example": { + "challenge": "PBN-3LnR1ZxSSpC0TgJsbUu92mcdgErmvtne916-yPs", + "rpId": "example.com", + "userVerification": "required" + } + } + }, + "required": [ + "$id", + "$createdAt", + "passkeyId", + "expire", + "publicKey" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "passkeyId": "5e5ea5c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "publicKey": { + "challenge": "PBN-3LnR1ZxSSpC0TgJsbUu92mcdgErmvtne916-yPs", + "rpId": "example.com", + "userVerification": "required" + } + } + }, + "passkeyList": { + "description": "Passkeys List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of passkeys that matched your query.", + "format": "int32", + "example": 5 + }, + "passkeys": { + "type": "array", + "description": "List of passkeys.", + "items": { + "$ref": "#\/components\/schemas\/passkey" + }, + "example": [] + } + }, + "required": [ + "total", + "passkeys" + ], + "example": { + "total": 5, + "passkeys": "" + } + }, + "mfaRecoveryCodes": { + "description": "MFA Recovery Codes", + "type": "object", + "properties": { + "recoveryCodes": { + "type": "array", + "description": "Recovery codes.", + "items": { + "type": "string" + }, + "example": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "required": [ + "recoveryCodes" + ], + "example": { + "recoveryCodes": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "mfaType": { + "description": "MFAType", + "type": "object", + "properties": { + "secret": { + "type": "string", + "description": "Secret token used for TOTP factor.", + "example": "[SHARED_SECRET]" + }, + "uri": { + "type": "string", + "description": "URI for authenticator apps.", + "example": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" + } + }, + "required": [ + "secret", + "uri" + ], + "example": { + "secret": "[SHARED_SECRET]", + "uri": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" + } + }, + "mfaFactors": { + "description": "MFAFactors", + "type": "object", + "properties": { + "totp": { + "type": "boolean", + "description": "Can TOTP be used for MFA challenge for this account.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Can phone (SMS) be used for MFA challenge for this account.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Can email be used for MFA challenge for this account.", + "example": true + }, + "recoveryCode": { + "type": "boolean", + "description": "Can recovery code be used for MFA challenge for this account.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Can custom factor be used for MFA challenge for this account.", + "example": true + } + }, + "required": [ + "totp", + "phone", + "email", + "recoveryCode", + "custom" + ], + "example": { + "totp": true, + "phone": true, + "email": true, + "recoveryCode": true, + "custom": true + } + }, + "provider": { + "description": "Provider", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Provider ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Provider creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Provider update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name for the provider instance.", + "example": "Mailgun" + }, + "provider": { + "type": "string", + "description": "The name of the provider service.", + "example": "mailgun" + }, + "enabled": { + "type": "boolean", + "description": "Is provider enabled?", + "example": true + }, + "type": { + "type": "string", + "description": "Type of provider.", + "example": "sms" + }, + "credentials": { + "type": "object", + "additionalProperties": true, + "description": "Provider credentials.", + "example": { + "key": "123456789" + } + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Provider options.", + "example": { + "from": "sender-email@mydomain" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "provider", + "enabled", + "type", + "credentials" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Mailgun", + "provider": "mailgun", + "enabled": true, + "type": "sms", + "credentials": { + "key": "123456789" + }, + "options": { + "from": "sender-email@mydomain" + } + } + }, + "message": { + "description": "Message", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Message ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Message creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Message update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerType": { + "type": "string", + "description": "Message provider type.", + "example": "email" + }, + "topics": { + "type": "array", + "description": "Topic IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "users": { + "type": "array", + "description": "User IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "targets": { + "type": "array", + "description": "Target IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for message.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveredAt": { + "type": "string", + "description": "The time when the message was delivered.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveryErrors": { + "type": "array", + "description": "Delivery errors if any.", + "items": { + "type": "string" + }, + "example": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "nullable": true + }, + "deliveredTotal": { + "type": "integer", + "description": "Number of recipients the message was delivered to.", + "format": "int32", + "example": 1 + }, + "data": { + "type": "object", + "additionalProperties": true, + "description": "Data of the message.", + "example": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." + } + }, + "status": { + "description": "Status of delivery.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "draft" + ], + "title": "draft" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + }, + { + "type": "string", + "enum": [ + "sent" + ], + "title": "sent" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "providerType", + "topics", + "users", + "targets", + "deliveredTotal", + "data", + "status" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "topics": [ + "5e5ea5c16897e" + ], + "users": [ + "5e5ea5c16897e" + ], + "targets": [ + "5e5ea5c16897e" + ], + "scheduledAt": "2020-10-15T06:38:00.000+00:00", + "deliveredAt": "2020-10-15T06:38:00.000+00:00", + "deliveryErrors": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "deliveredTotal": 1, + "data": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." + }, + "status": "processing" + } + }, + "topic": { + "description": "Topic", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Topic creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Topic update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name of the topic.", + "example": "events" + }, + "emailTotal": { + "type": "integer", + "description": "Total count of email subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "smsTotal": { + "type": "integer", + "description": "Total count of SMS subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "pushTotal": { + "type": "integer", + "description": "Total count of push subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "subscribe": { + "type": "array", + "description": "Subscribe permissions.", + "items": { + "type": "string" + }, + "example": [ + "users" + ] + }, + "qos": { + "type": "integer", + "description": "MQTT QoS for delivery on this topic. Null lets the subscriber choose their level.", + "format": "int32", + "example": 1, + "nullable": true + }, + "expiry": { + "type": "integer", + "description": "Message retention in seconds for offline delivery.", + "format": "int32", + "example": 604800, + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "emailTotal", + "smsTotal", + "pushTotal", + "subscribe" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "events", + "emailTotal": 100, + "smsTotal": 100, + "pushTotal": 100, + "subscribe": "users", + "qos": 1, + "expiry": 604800 + } + }, + "transaction": { + "description": "Transaction", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Transaction ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Transaction creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Transaction update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", + "example": "pending" + }, + "operations": { + "type": "integer", + "description": "Number of operations in the transaction.", + "format": "int32", + "example": 5 + }, + "expiresAt": { + "type": "string", + "description": "Expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "operations", + "expiresAt" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "status": "pending", + "operations": 5, + "expiresAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "subscriber": { + "description": "Subscriber", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Subscriber ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Subscriber creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Subscriber update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "targetId": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "target": { + "type": "object", + "description": "Target.", + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/target" + } + ] + }, + "userId": { + "type": "string", + "description": "Topic ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User Name.", + "example": "Aegon Targaryen" + }, + "topicId": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "targetId", + "target", + "userId", + "userName", + "topicId", + "providerType" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "targetId": "259125845563242502", + "target": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" + }, + "userId": "5e5ea5c16897e", + "userName": "Aegon Targaryen", + "topicId": "259125845563242502", + "providerType": "email" + } + }, + "target": { + "description": "Target", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Target creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Target update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Target Name.", + "example": "Apple iPhone 12" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "259125845563242502" + }, + "providerId": { + "type": "string", + "description": "Provider ID.", + "example": "259125845563242502", + "nullable": true + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + }, + "identifier": { + "type": "string", + "description": "The target identifier.", + "example": "token" + }, + "expired": { + "type": "boolean", + "description": "Is the target expired.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "userId", + "providerType", + "identifier", + "expired" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Apple iPhone 12", + "userId": "259125845563242502", + "providerId": "259125845563242502", + "providerType": "email", + "identifier": "token", + "expired": false + } + }, + "migration": { + "description": "Migration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Migration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Migration creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Migration status ( pending, processing, failed, completed ) ", + "example": "pending" + }, + "stage": { + "type": "string", + "description": "Migration stage ( init, processing, source-check, destination-check, migrating, finished )", + "example": "init" + }, + "source": { + "type": "string", + "description": "A string containing the type of source of the migration.", + "example": "Appwrite" + }, + "destination": { + "type": "string", + "description": "A string containing the type of destination of the migration.", + "example": "Appwrite" + }, + "resources": { + "type": "array", + "description": "Resources to migrate.", + "items": { + "type": "string" + }, + "example": [ + "user" + ] + }, + "resourceId": { + "type": "string", + "description": "ID of the resource being migrated.", + "example": "collectionId" + }, + "resourceInternalId": { + "type": "string", + "description": "Internal ID of the resource being migrated.", + "example": "1" + }, + "resourceType": { + "type": "string", + "description": "Type of the resource being migrated.", + "example": "collection" + }, + "parentResourceId": { + "type": "string", + "description": "ID of the parent resource that contains the migrated resource.", + "example": "databaseId" + }, + "parentResourceInternalId": { + "type": "string", + "description": "Internal ID of the parent resource that contains the migrated resource.", + "example": "1" + }, + "parentResourceType": { + "type": "string", + "description": "Type of the parent resource that contains the migrated resource.", + "example": "database" + }, + "destinationResourceId": { + "type": "string", + "description": "ID of the destination resource created or overwritten by the migration.", + "example": "databaseId" + }, + "destinationResourceInternalId": { + "type": "string", + "description": "Internal ID of the destination resource created or overwritten by the migration.", + "example": "1" + }, + "destinationResourceType": { + "type": "string", + "description": "Type of the destination resource created or overwritten by the migration.", + "example": "database" + }, + "statusCounters": { + "type": "object", + "additionalProperties": true, + "description": "A group of counters that represent the total progress of the migration.", + "example": { + "Database": { + "PENDING": 0, + "SUCCESS": 1, + "ERROR": 0, + "SKIP": 0, + "PROCESSING": 0, + "WARNING": 0 + } + } + }, + "resourceData": { + "type": "array", + "description": "An array of objects containing the report data of the resources that were migrated.", + "items": { + "type": "object" + }, + "example": [ + { + "resource": "Database", + "id": "public", + "status": "SUCCESS", + "message": "" + } + ] + }, + "errors": { + "type": "array", + "description": "All errors that occurred during the migration process.", + "items": { + "type": "string" + }, + "example": [] + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Migration options used during the migration process.", + "example": { + "bucketId": "exports", + "notify": false + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "stage", + "source", + "destination", + "resources", + "resourceId", + "resourceInternalId", + "resourceType", + "parentResourceId", + "parentResourceInternalId", + "parentResourceType", + "destinationResourceId", + "destinationResourceInternalId", + "destinationResourceType", + "statusCounters", + "resourceData", + "errors", + "options" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "status": "pending", + "stage": "init", + "source": "Appwrite", + "destination": "Appwrite", + "resources": [ + "user" + ], + "resourceId": "collectionId", + "resourceInternalId": "1", + "resourceType": "collection", + "parentResourceId": "databaseId", + "parentResourceInternalId": "1", + "parentResourceType": "database", + "destinationResourceId": "databaseId", + "destinationResourceInternalId": "1", + "destinationResourceType": "database", + "statusCounters": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}", + "resourceData": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]", + "errors": [], + "options": "{\"bucketId\": \"exports\", \"notify\": false}" + } + }, + "migrationReport": { + "description": "Migration Report", + "type": "object", + "properties": { + "user": { + "type": "integer", + "description": "Number of users to be migrated.", + "format": "int32", + "example": 20 + }, + "team": { + "type": "integer", + "description": "Number of teams to be migrated.", + "format": "int32", + "example": 20 + }, + "database": { + "type": "integer", + "description": "Number of databases to be migrated.", + "format": "int32", + "example": 20 + }, + "row": { + "type": "integer", + "description": "Number of rows to be migrated.", + "format": "int32", + "example": 20 + }, + "file": { + "type": "integer", + "description": "Number of files to be migrated.", + "format": "int32", + "example": 20 + }, + "bucket": { + "type": "integer", + "description": "Number of buckets to be migrated.", + "format": "int32", + "example": 20 + }, + "function": { + "type": "integer", + "description": "Number of functions to be migrated.", + "format": "int32", + "example": 20 + }, + "platform": { + "type": "integer", + "description": "Number of platforms to be migrated.", + "format": "int32", + "example": 5 + }, + "api-key": { + "type": "integer", + "description": "Number of API keys to be migrated.", + "format": "int32", + "example": 5 + }, + "project-variable": { + "type": "integer", + "description": "Number of project variables to be migrated.", + "format": "int32", + "example": 5 + }, + "webhook": { + "type": "integer", + "description": "Number of webhooks to be migrated.", + "format": "int32", + "example": 5 + }, + "auth-methods": { + "type": "integer", + "description": "Number of auth-method configs to be migrated (always 0 or 1 \u2014 the project-level flag bundle).", + "format": "int32", + "example": 1 + }, + "project-protocols": { + "type": "integer", + "description": "Number of protocol configs to be migrated (always 0 or 1 \u2014 the project-level REST\/GraphQL\/WebSocket flags).", + "format": "int32", + "example": 1 + }, + "project-labels": { + "type": "integer", + "description": "Number of label sets to be migrated (always 0 or 1 \u2014 the project-level RBAC label array).", + "format": "int32", + "example": 1 + }, + "project-services": { + "type": "integer", + "description": "Number of service configs to be migrated (always 0 or 1 \u2014 the project-level enable\/disable flags for all 17 services).", + "format": "int32", + "example": 1 + }, + "policies": { + "type": "integer", + "description": "Number of policy bundles to be migrated (always 0 or 1 \u2014 the project-level security policies covering password rules, session behavior, user limits, and membership privacy).", + "format": "int32", + "example": 1 + }, + "smtp": { + "type": "integer", + "description": "Number of SMTP configurations to be migrated (always 0 or 1 \u2014 the project-level custom SMTP settings; password is not exposed by the source API).", + "format": "int32", + "example": 1 + }, + "rule": { + "type": "integer", + "description": "Number of custom-domain proxy rules to be migrated. Auto-generated `.appwrite.network` rules are skipped \u2014 they are recreated by parent Function\/Site migration.", + "format": "int32", + "example": 5 + }, + "project-email-template": { + "type": "integer", + "description": "Number of custom email templates to be migrated (one per templateId \u00d7 locale pair).", + "format": "int32", + "example": 7 + }, + "site": { + "type": "integer", + "description": "Number of sites to be migrated.", + "format": "int32", + "example": 5 + }, + "provider": { + "type": "integer", + "description": "Number of providers to be migrated.", + "format": "int32", + "example": 5 + }, + "topic": { + "type": "integer", + "description": "Number of topics to be migrated.", + "format": "int32", + "example": 10 + }, + "subscriber": { + "type": "integer", + "description": "Number of subscribers to be migrated.", + "format": "int32", + "example": 100 + }, + "message": { + "type": "integer", + "description": "Number of messages to be migrated.", + "format": "int32", + "example": 50 + }, + "size": { + "type": "integer", + "description": "Size of files to be migrated in mb.", + "format": "int32", + "example": 30000 + }, + "version": { + "type": "string", + "description": "Version of the Appwrite instance to be migrated.", + "example": "1.4.0" + }, + "oauth2-provider": { + "type": "integer", + "description": "Number of OAuth2 provider configurations to be migrated. Secrets (clientSecret, p8File) are never migrated \u2014 destination admin must re-enter them per provider.", + "format": "int32", + "example": 5 + }, + "backup-policy": { + "type": "integer", + "description": "Number of backup policies to be migrated.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "user", + "team", + "database", + "row", + "file", + "bucket", + "function", + "platform", + "api-key", + "project-variable", + "webhook", + "auth-methods", + "project-protocols", + "project-labels", + "project-services", + "policies", + "smtp", + "rule", + "project-email-template", + "site", + "provider", + "topic", + "subscriber", + "message", + "size", + "version", + "oauth2-provider", + "backup-policy" + ], + "example": { + "user": 20, + "team": 20, + "database": 20, + "row": 20, + "file": 20, + "bucket": 20, + "function": 20, + "platform": 5, + "api-key": 5, + "project-variable": 5, + "webhook": 5, + "auth-methods": 1, + "project-protocols": 1, + "project-labels": 1, + "project-services": 1, + "policies": 1, + "smtp": 1, + "rule": 5, + "project-email-template": 7, + "site": 5, + "provider": 5, + "topic": 10, + "subscriber": 100, + "message": 50, + "size": 30000, + "version": "1.4.0", + "oauth2-provider": 5, + "backup-policy": 5 + } + }, + "insight": { + "description": "Insight", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Insight ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Insight creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Insight update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "reportId": { + "type": "string", + "description": "Parent report ID. Insights always belong to a report.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Insight type. One of databaseIndex (legacy), tablesDBIndex, documentsDBIndex, vectorsDBIndex, databasePerformance, sitePerformance, siteAccessibility, siteSeo, functionPerformance. The index types are engine-specific so each CTA can pair the right service+method (databases.createIndex, tablesDB.createIndex, documentsDB.createIndex, or vectorsDB.createIndex).", + "example": "tablesDBIndex" + }, + "severity": { + "type": "string", + "description": "Insight severity. One of info, warning, critical.", + "example": "warning" + }, + "status": { + "type": "string", + "description": "Insight status. One of active, dismissed.", + "example": "active" + }, + "resourceType": { + "type": "string", + "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", + "example": "databases" + }, + "resourceId": { + "type": "string", + "description": "ID of the resource the insight is about.", + "example": "main" + }, + "parentResourceType": { + "type": "string", + "description": "Plural noun for the parent resource that contains the insight's resource, e.g. an insight about a column index on a table \u2192 resourceType=indexes, parentResourceType=tables. Empty when the resource has no parent.", + "example": "tables" + }, + "parentResourceId": { + "type": "string", + "description": "ID of the parent resource. Empty when the resource has no parent.", + "example": "orders" + }, + "title": { + "type": "string", + "description": "Insight title.", + "example": "Missing index on collection orders" + }, + "summary": { + "type": "string", + "description": "Short markdown summary describing the insight.", + "example": "Queries against `orders.status` are scanning the full collection." + }, + "ctas": { + "type": "array", + "description": "List of call-to-action buttons attached to this insight.", + "items": { + "$ref": "#\/components\/schemas\/insightCTA" + }, + "example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the insight was analyzed in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "dismissedAt": { + "type": "string", + "description": "Time the insight was dismissed in ISO 8601 format. Empty when not dismissed.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "dismissedBy": { + "type": "string", + "description": "User ID that dismissed the insight. Empty when not dismissed.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "reportId", + "type", + "severity", + "status", + "resourceType", + "resourceId", + "parentResourceType", + "parentResourceId", + "title", + "summary", + "ctas" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "reportId": "5e5ea5c16897e", + "type": "tablesDBIndex", + "severity": "warning", + "status": "active", + "resourceType": "databases", + "resourceId": "main", + "parentResourceType": "tables", + "parentResourceId": "orders", + "title": "Missing index on collection orders", + "summary": "Queries against `orders.status` are scanning the full collection.", + "ctas": [], + "analyzedAt": "2020-10-15T06:38:00.000+00:00", + "dismissedAt": "2020-10-15T06:38:00.000+00:00", + "dismissedBy": "5e5ea5c16897e" + } + }, + "insightCTA": { + "description": "InsightCTA", + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Human-readable label for the CTA, used in UI.", + "example": "Create missing index" + }, + "service": { + "type": "string", + "description": "Public API service (SDK namespace) the client should invoke. Must match the engine that owns the resource \u2014 for index suggestions: databases (legacy), tablesDB, documentsDB, or vectorsDB.", + "example": "tablesDB" + }, + "method": { + "type": "string", + "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", + "example": "createIndex" + }, + "params": { + "type": "object", + "additionalProperties": true, + "description": "Parameter map the client should pass to the service method when this CTA is triggered. Keys match the target API's parameter names (e.g. databaseId\/tableId\/columns for tablesDB, databaseId\/collectionId\/attributes for the legacy Databases API).", + "example": { + "databaseId": "main", + "tableId": "orders", + "key": "_idx_status", + "type": "key", + "columns": [ + "status" + ] + } + } + }, + "required": [ + "label", + "service", + "method", + "params" + ], + "example": { + "label": "Create missing index", + "service": "tablesDB", + "method": "createIndex", + "params": { + "databaseId": "main", + "tableId": "orders", + "key": "_idx_status", + "type": "key", + "columns": [ + "status" + ] + } + } + }, + "report": { + "description": "Report", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Report ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Report creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Report update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the third-party app that submitted the report.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", + "example": "lighthouse" + }, + "title": { + "type": "string", + "description": "Short, human-readable title for the report.", + "example": "Lighthouse audit for https:\/\/appwrite.io\/" + }, + "summary": { + "type": "string", + "description": "Markdown summary describing the report.", + "example": "Performance score 78. 4 opportunities found." + }, + "targetType": { + "type": "string", + "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", + "example": "urls" + }, + "target": { + "type": "string", + "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", + "example": "https:\/\/appwrite.io\/" + }, + "categories": { + "type": "array", + "description": "Categories covered by the report, e.g. performance, accessibility.", + "items": { + "type": "string" + }, + "example": [ + "performance", + "accessibility" + ] + }, + "insights": { + "type": "array", + "description": "Insights nested under this report.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the report was analyzed in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "type", + "title", + "summary", + "targetType", + "target", + "categories", + "insights" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "type": "lighthouse", + "title": "Lighthouse audit for https:\/\/appwrite.io\/", + "summary": "Performance score 78. 4 opportunities found.", + "targetType": "urls", + "target": "https:\/\/appwrite.io\/", + "categories": [ + "performance", + "accessibility" + ], + "insights": [], + "analyzedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "activityEvent": { + "description": "ActivityEvent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Event ID.", + "example": "5e5ea5c16897e" + }, + "actorType": { + "type": "string", + "description": "Actor type.", + "example": "user" + }, + "actorId": { + "type": "string", + "description": "Actor ID.", + "example": "610fc2f985ee0" + }, + "actorEmail": { + "type": "string", + "description": "Actor Email.", + "example": "john@appwrite.io" + }, + "actorName": { + "type": "string", + "description": "Actor Name.", + "example": "John Doe" + }, + "resourceParent": { + "type": "string", + "description": "Resource parent.", + "example": "database\/ID" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "collection" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "610fc2f985ee0" + }, + "resource": { + "type": "string", + "description": "Resource.", + "example": "collections\/610fc2f985ee0" + }, + "event": { + "type": "string", + "description": "Event name.", + "example": "account.sessions.create" + }, + "userAgent": { + "type": "string", + "description": "User agent.", + "example": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/86.0.4240.198 Safari\/537.36" + }, + "ip": { + "type": "string", + "description": "IP address.", + "example": "127.0.0.1" + }, + "mode": { + "type": "string", + "description": "API mode when event triggered.", + "example": "admin" + }, + "country": { + "type": "string", + "description": "Location.", + "example": "US" + }, + "continentCode": { + "type": "string", + "description": "Continent code.", + "example": "NA" + }, + "city": { + "type": "string", + "description": "City name.", + "example": "Mountain View" + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain.", + "example": "California" + }, + "isp": { + "type": "string", + "description": "Internet service provider.", + "example": "Google" + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN).", + "example": "15169" + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN.", + "example": "GOOGLE" + }, + "connectionType": { + "type": "string", + "description": "Connection type (e.g. cable, cellular, corporate).", + "example": "cable" + }, + "connectionUsageType": { + "type": "string", + "description": "User type (e.g. residential, business, hosting).", + "example": "residential" + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP.", + "example": "Google LLC" + }, + "time": { + "type": "string", + "description": "Log creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "610fc2f985ee0" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "610fc2f985ee0" + }, + "hostname": { + "type": "string", + "description": "Hostname.", + "example": "appwrite.io" + }, + "sdk": { + "type": "string", + "description": "Name of the SDK that triggered the event.", + "example": "web" + }, + "sdkVersion": { + "type": "string", + "description": "Version of the SDK that triggered the event.", + "example": "14.0.0" + } + }, + "required": [ + "$id", + "actorType", + "actorId", + "actorEmail", + "actorName", + "resourceParent", + "resourceType", + "resourceId", + "resource", + "event", + "userAgent", + "ip", + "mode", + "country", + "continentCode", + "city", + "subdivisions", + "isp", + "autonomousSystemNumber", + "autonomousSystemOrganization", + "connectionType", + "connectionUsageType", + "connectionOrganization", + "time", + "projectId", + "teamId", + "hostname", + "sdk", + "sdkVersion" + ], + "example": { + "$id": "5e5ea5c16897e", + "actorType": "user", + "actorId": "610fc2f985ee0", + "actorEmail": "john@appwrite.io", + "actorName": "John Doe", + "resourceParent": "database\/ID", + "resourceType": "collection", + "resourceId": "610fc2f985ee0", + "resource": "collections\/610fc2f985ee0", + "event": "account.sessions.create", + "userAgent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/86.0.4240.198 Safari\/537.36", + "ip": "127.0.0.1", + "mode": "admin", + "country": "US", + "continentCode": "NA", + "city": "Mountain View", + "subdivisions": "California", + "isp": "Google", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC", + "time": "2020-10-15T06:38:00.000+00:00", + "projectId": "610fc2f985ee0", + "teamId": "610fc2f985ee0", + "hostname": "appwrite.io", + "sdk": "web", + "sdkVersion": "14.0.0" + } + }, + "additionalResource": { + "description": "AdditionalResource", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Resource name", + "example": "" + }, + "unit": { + "type": "string", + "description": "Resource unit", + "example": "GB" + }, + "currency": { + "type": "string", + "description": "Price currency", + "example": "USD" + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 5 + }, + "value": { + "type": "integer", + "description": "Resource value", + "format": "int32", + "example": 25 + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "example": "" + } + }, + "required": [ + "name", + "unit", + "currency", + "price", + "value", + "invoiceDesc" + ], + "example": { + "name": "", + "unit": "GB", + "currency": "USD", + "price": 5, + "value": 25, + "invoiceDesc": "" + } + }, + "addon": { + "description": "Addon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Addon ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Addon creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Addon update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Addon permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "key": { + "type": "string", + "description": "Addon key", + "example": "baa" + }, + "resourceType": { + "type": "string", + "description": "Resource type (organization or project)", + "example": "organization" + }, + "resourceId": { + "type": "string", + "description": "Resource ID", + "example": "5e5ea5c16897e" + }, + "status": { + "type": "string", + "description": "Payment status. Possible values: pending (awaiting payment confirmation e.g. 3DS), active (payment confirmed and addon is running).", + "example": "active" + }, + "currentValue": { + "type": "integer", + "description": "Current value for this billing cycle. For toggle addons: 1 (on) or 0 (off). For numeric addons: the active quantity.", + "format": "int32", + "example": 1 + }, + "nextValue": { + "type": "integer", + "description": "Value to apply at the start of the next billing cycle. Null means no change is scheduled. For toggle addons, 0 means the addon will be removed at the next cycle.", + "format": "int32", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "key", + "resourceType", + "resourceId", + "status", + "currentValue" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "key": "baa", + "resourceType": "organization", + "resourceId": "5e5ea5c16897e", + "status": "active", + "currentValue": 1, + "nextValue": null + } + }, + "addonPrice": { + "description": "AddonPrice", + "type": "object", + "properties": { + "addonKey": { + "type": "string", + "description": "Addon key.", + "example": "baa" + }, + "name": { + "type": "string", + "description": "Addon display name.", + "example": "HIPAA BAA" + }, + "monthlyPrice": { + "type": "number", + "description": "Full monthly price of the addon.", + "format": "double", + "example": 350 + }, + "proratedAmount": { + "type": "number", + "description": "Calculated prorated amount for the current billing cycle.", + "format": "double", + "example": 175.5 + }, + "remainingDays": { + "type": "integer", + "description": "Days remaining in the current billing cycle.", + "format": "int32", + "example": 15 + }, + "totalCycleDays": { + "type": "integer", + "description": "Total days in the billing cycle.", + "format": "int32", + "example": 30 + }, + "currency": { + "type": "string", + "description": "Currency code.", + "example": "USD" + }, + "billingCycleEnd": { + "type": "string", + "description": "When the current billing cycle ends.", + "example": "2024-02-01T00:00:00.000+00:00" + } + }, + "required": [ + "addonKey", + "name", + "monthlyPrice", + "proratedAmount", + "remainingDays", + "totalCycleDays", + "currency", + "billingCycleEnd" + ], + "example": { + "addonKey": "baa", + "name": "HIPAA BAA", + "monthlyPrice": 350, + "proratedAmount": 175.5, + "remainingDays": 15, + "totalCycleDays": 30, + "currency": "USD", + "billingCycleEnd": "2024-02-01T00:00:00.000+00:00" + } + }, + "affiliateLink": { + "description": "AffiliateLink", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Link ID. This is the shareable referral code.", + "example": "my-campaign" + }, + "$createdAt": { + "type": "string", + "description": "Link creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Link update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID of the link owner.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Optional link name.", + "example": "Launch campaign" + }, + "status": { + "type": "string", + "description": "Link status. Can be one of `active` or `disabled`.", + "example": "active" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "name", + "status" + ], + "example": { + "$id": "my-campaign", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "name": "Launch campaign", + "status": "active" + } + }, + "affiliateLinkList": { + "description": "Affiliate links list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of links that matched your query.", + "format": "int32", + "example": 5 + }, + "links": { + "type": "array", + "description": "List of links.", + "items": { + "$ref": "#\/components\/schemas\/affiliateLink" + }, + "example": [] + } + }, + "required": [ + "total", + "links" + ], + "example": { + "total": 5, + "links": "" + } + }, + "affiliateReferral": { + "description": "AffiliateReferral", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Referral ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Referral creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Referral update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "linkId": { + "type": "string", + "description": "Affiliate link ID used for attribution.", + "example": "my-campaign" + }, + "referredUserMaskedId": { + "type": "string", + "description": "Privacy-safe truncated referred user ID.", + "example": "****97e" + }, + "referredUserCountry": { + "type": "string", + "description": "ISO 3166-1 alpha-2 country code of the referred user at signup, when available.", + "example": "us" + }, + "status": { + "type": "string", + "description": "Referral status. Can be one of `pending`, `converted`, or `expired`. `expired` is derived from `expiresAt` when still pending.", + "example": "pending" + }, + "attributedAt": { + "type": "string", + "description": "Attribution time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "expiresAt": { + "type": "string", + "description": "Attribution expiry time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "convertedAt": { + "type": "string", + "description": "Conversion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "linkId", + "referredUserMaskedId", + "referredUserCountry", + "status", + "attributedAt", + "expiresAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "linkId": "my-campaign", + "referredUserMaskedId": "****97e", + "referredUserCountry": "us", + "status": "pending", + "attributedAt": "2020-10-15T06:38:00.000+00:00", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "convertedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "affiliateReferralList": { + "description": "Affiliate referrals list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of referrals that matched your query.", + "format": "int32", + "example": 5 + }, + "referrals": { + "type": "array", + "description": "List of referrals.", + "items": { + "$ref": "#\/components\/schemas\/affiliateReferral" + }, + "example": [] + } + }, + "required": [ + "total", + "referrals" + ], + "example": { + "total": 5, + "referrals": "" + } + }, + "affiliateReward": { + "description": "AffiliateReward", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Reward ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Reward creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Reward update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID of the reward owner.", + "example": "5e5ea5c16897e" + }, + "linkId": { + "type": "string", + "description": "Affiliate link ID that earned this reward.", + "example": "my-campaign" + }, + "referralId": { + "type": "string", + "description": "Referral ID that earned this reward.", + "example": "5e5ea5c16897e" + }, + "amount": { + "type": "number", + "description": "Reward amount in USD.", + "format": "double", + "example": 10 + }, + "status": { + "type": "string", + "description": "Reward status. Can be one of `pending` or `claimed`.", + "example": "pending" + }, + "teamId": { + "type": "string", + "description": "Organization ID the reward was claimed on.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "creditId": { + "type": "string", + "description": "Credit document ID created when the reward was claimed.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "linkId", + "referralId", + "amount", + "status" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "linkId": "my-campaign", + "referralId": "5e5ea5c16897e", + "amount": 10, + "status": "pending", + "teamId": "5e5ea5c16897e", + "creditId": "5e5ea5c16897e" + } + }, + "affiliateRewardList": { + "description": "Affiliate rewards list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rewards that matched your query.", + "format": "int32", + "example": 5 + }, + "rewards": { + "type": "array", + "description": "List of rewards.", + "items": { + "$ref": "#\/components\/schemas\/affiliateReward" + }, + "example": [] + } + }, + "required": [ + "total", + "rewards" + ], + "example": { + "total": 5, + "rewards": "" + } + }, + "aggregationBreakdown": { + "description": "Breakdown", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Aggregation ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Project name", + "example": "" + }, + "region": { + "type": "string", + "description": "Project region", + "example": "fra" + }, + "amount": { + "type": "integer", + "description": "Aggregated amount", + "format": "int32", + "example": 2 + }, + "resources": { + "type": "array", + "description": "", + "items": { + "$ref": "#\/components\/schemas\/usageResources" + }, + "example": [] + } + }, + "required": [ + "$id", + "name", + "region", + "amount", + "resources" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "", + "region": "fra", + "amount": 2, + "resources": "" + } + }, + "analyticsMetric": { + "description": "AnalyticsMetric", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Dimension value this row covers. Null when no dimension was requested, empty when the dimension could not be derived for those events.", + "example": "google.com", + "nullable": true + }, + "date": { + "type": "string", + "description": "Start of the time bucket this row covers, in ISO 8601. Null when no interval was requested.", + "example": "2026-05-01T00:00:00.000+00:00", + "nullable": true + }, + "visitors": { + "type": "integer", + "description": "Unique visitors in the requested range.", + "format": "int32", + "example": 1234 + }, + "sessions": { + "type": "integer", + "description": "Unique sessions in the requested range.", + "format": "int32", + "example": 4567 + }, + "pageviews": { + "type": "integer", + "description": "Total pageview events (events with name=\"pageview\") in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 5678, + "nullable": true + }, + "events": { + "type": "integer", + "description": "Total events in the requested range.", + "format": "int32", + "example": 8910 + }, + "visits": { + "type": "integer", + "description": "Total sessions with activity in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 2345, + "nullable": true + }, + "bounceRate": { + "type": "number", + "description": "Share of single-event sessions, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 42.5, + "nullable": true + }, + "visitDuration": { + "type": "number", + "description": "Average session length in seconds, measured first event to last event. Single-event sessions count as 0. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 75.4, + "nullable": true + }, + "viewsPerVisit": { + "type": "number", + "description": "Average pageviews per session (pageviews divided by visits). Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 2.7, + "nullable": true + }, + "scrollDepth": { + "type": "number", + "description": "Average scroll depth across events, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 65, + "nullable": true + }, + "engagementTime": { + "type": "number", + "description": "Average engaged time per session in seconds, counting only foreground time. Sessions that reported no engagement are excluded. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 18432, + "nullable": true + } + }, + "required": [ + "visitors", + "sessions", + "events" + ], + "example": { + "value": "google.com", + "date": "2026-05-01T00:00:00.000+00:00", + "visitors": 1234, + "sessions": 4567, + "pageviews": 5678, + "events": 8910, + "visits": 2345, + "bounceRate": 42.5, + "visitDuration": 75.4, + "viewsPerVisit": 2.7, + "scrollDepth": 65, + "engagementTime": 18432 + } + }, + "analyticsMetricList": { + "description": "AnalyticsMetricList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of metric rows returned.", + "format": "int32", + "example": 30 + }, + "metrics": { + "type": "array", + "description": "Metric rows: one per time bucket, one per dimension value, or a single row for the flat aggregate.", + "items": { + "$ref": "#\/components\/schemas\/analyticsMetric" + }, + "example": [] + } + }, + "required": [ + "total", + "metrics" + ], + "example": { + "total": 30, + "metrics": [] + } + }, + "analyticsProperty": { + "description": "AnalyticsProperty", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Analytics property ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Property creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Property update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human-readable name of the tracked website or application.", + "example": "My Website" + }, + "domain": { + "type": "string", + "description": "Primary domain being tracked (e.g. example.com). May be empty for native apps.", + "example": "example.com" + }, + "enabled": { + "type": "boolean", + "description": "Whether tracking is currently active.", + "example": true + }, + "public": { + "type": "boolean", + "description": "Whether stats for this property are publicly viewable.", + "example": false + }, + "allowedOrigins": { + "type": "array", + "description": "List of origins allowed to send tracking events. Use [\"*\"] to allow all.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com" + ] + }, + "accessedAt": { + "type": "string", + "description": "Most recent event date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "firstAccessedAt": { + "type": "string", + "description": "First event date in ISO 8601 format. Empty until the property receives its first event.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "domain", + "enabled", + "public", + "allowedOrigins", + "accessedAt", + "firstAccessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Website", + "domain": "example.com", + "enabled": true, + "public": false, + "allowedOrigins": [ + "https:\/\/example.com" + ], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "firstAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "aggregationTeam": { + "description": "Team", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Aggregation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Aggregation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Aggregation update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Aggregation permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "from": { + "type": "string", + "description": "Beginning date of the invoice", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "to": { + "type": "string", + "description": "End date of the invoice", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "usageStorage": { + "type": "integer", + "description": "Total storage usage", + "format": "int32", + "example": 20009090 + }, + "usageTotalStorage": { + "type": "integer", + "description": "Total storage usage with builds storage", + "format": "int32", + "example": 20009090 + }, + "usageFilesStorage": { + "type": "integer", + "description": "Total files storage usage", + "format": "int32", + "example": 20009090 + }, + "usageDeploymentsStorage": { + "type": "integer", + "description": "Total deployments storage usage", + "format": "int32", + "example": 20009090 + }, + "usageBuildsStorage": { + "type": "integer", + "description": "Total builds storage usage", + "format": "int32", + "example": 20009090 + }, + "usageDatabasesStorage": { + "type": "integer", + "description": "Total databases storage usage", + "format": "int32", + "example": 2009090 + }, + "usageFunctionsStorage": { + "type": "integer", + "description": "Total functions storage usage, deployments and builds together. Supersedes usageDeploymentsStorage and usageBuildsStorage.", + "format": "int32", + "example": 20009090 + }, + "usageSitesStorage": { + "type": "integer", + "description": "Total sites storage usage, deployments and builds together. Supersedes usageDeploymentsStorage and usageBuildsStorage.", + "format": "int32", + "example": 20009090 + }, + "usageUsers": { + "type": "integer", + "description": "Total active users for the billing period", + "format": "int32", + "example": 2000 + }, + "usageExecutions": { + "type": "integer", + "description": "Total number of executions for the billing period", + "format": "int32", + "example": 2000 + }, + "usageBandwidth": { + "type": "integer", + "description": "Total bandwidth usage for the billing period", + "format": "int32", + "example": 2000 + }, + "usageRealtime": { + "type": "integer", + "description": "Peak concurrent realtime connections for the billing period", + "format": "int32", + "example": 200 + }, + "usageRealtimeMessages": { + "type": "integer", + "description": "Total realtime messages sent for the billing period", + "format": "int32", + "example": 10000 + }, + "usageRealtimeBandwidth": { + "type": "integer", + "description": "Total realtime bandwidth usage for the billing period", + "format": "int32", + "example": 5000000 + }, + "additionalMembers": { + "type": "integer", + "description": "Additional members", + "format": "int32", + "example": 5 + }, + "additionalMemberAmount": { + "type": "integer", + "description": "Additional members cost", + "format": "int32", + "example": 30 + }, + "additionalStorageAmount": { + "type": "integer", + "description": "Additional storage usage cost", + "format": "int32", + "example": 40 + }, + "additionalUsersAmount": { + "type": "integer", + "description": "Additional users usage cost.", + "format": "int32", + "example": 4 + }, + "additionalExecutionsAmount": { + "type": "integer", + "description": "Additional executions usage cost", + "format": "int32", + "example": 30 + }, + "additionalBandwidthAmount": { + "type": "integer", + "description": "Additional bandwidth usage cost", + "format": "int32", + "example": 40 + }, + "additionalRealtimeAmount": { + "type": "integer", + "description": "Additional realtime usage cost", + "format": "int32", + "example": 20 + }, + "plan": { + "type": "string", + "description": "Billing plan", + "example": "tier-0" + }, + "amount": { + "type": "integer", + "description": "Aggregated amount", + "format": "int32", + "example": 2 + }, + "breakdown": { + "type": "array", + "description": "Aggregation project breakdown", + "items": { + "$ref": "#\/components\/schemas\/aggregationBreakdown" + }, + "example": [] + }, + "resources": { + "type": "array", + "description": "Usage resources", + "items": { + "$ref": "#\/components\/schemas\/usageResources" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "from", + "to", + "usageStorage", + "usageTotalStorage", + "usageFilesStorage", + "usageDeploymentsStorage", + "usageBuildsStorage", + "usageDatabasesStorage", + "usageFunctionsStorage", + "usageSitesStorage", + "usageUsers", + "usageExecutions", + "usageBandwidth", + "usageRealtime", + "usageRealtimeMessages", + "usageRealtimeBandwidth", + "additionalMembers", + "additionalMemberAmount", + "additionalStorageAmount", + "additionalUsersAmount", + "additionalExecutionsAmount", + "additionalBandwidthAmount", + "additionalRealtimeAmount", + "plan", + "amount", + "breakdown", + "resources" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "from": "2020-10-15T06:38:00.000+00:00", + "to": "2020-10-15T06:38:00.000+00:00", + "usageStorage": 20009090, + "usageTotalStorage": 20009090, + "usageFilesStorage": 20009090, + "usageDeploymentsStorage": 20009090, + "usageBuildsStorage": 20009090, + "usageDatabasesStorage": 2009090, + "usageFunctionsStorage": 20009090, + "usageSitesStorage": 20009090, + "usageUsers": 2000, + "usageExecutions": 2000, + "usageBandwidth": 2000, + "usageRealtime": 200, + "usageRealtimeMessages": 10000, + "usageRealtimeBandwidth": 5000000, + "additionalMembers": 5, + "additionalMemberAmount": 30, + "additionalStorageAmount": 40, + "additionalUsersAmount": 4, + "additionalExecutionsAmount": 30, + "additionalBandwidthAmount": 40, + "additionalRealtimeAmount": 20, + "plan": "tier-0", + "amount": 2, + "breakdown": [], + "resources": [] + } + }, + "backupArchive": { + "description": "Archive", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Archive ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Archive creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Archive update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "policyId": { + "type": "string", + "description": "Archive policy ID.", + "example": "did8jx6ws45jana098ab7" + }, + "size": { + "type": "integer", + "description": "Archive size in bytes. Null until the size is known.", + "format": "int32", + "example": 100000, + "nullable": true + }, + "status": { + "type": "string", + "description": "The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.", + "example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The backup start time. Null until the backup starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this archive.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this archive.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this archive should backup a single resource.", + "example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this archive should backup a single resource.", + "example": "database", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "policyId", + "status", + "migrationId", + "services", + "resources" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "policyId": "did8jx6ws45jana098ab7", + "size": 100000, + "status": "completed", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "migrationId": "did8jx6ws45jana098ab7", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "resourceId": "DB1", + "resourceType": "database" + } + }, + "dedicatedDatabaseBackup": { + "description": "Backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Backup creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID this backup belongs to.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID when the backup was created by a schedule.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "type": "string", + "description": "Backup trigger. Possible values: manual, schedule.", + "example": "schedule" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup), wal (write-ahead log continuous archival).", + "example": "full" + }, + "requestedType": { + "type": "string", + "description": "Backup type that was requested. Differs from `type` when the backend could not run the requested type and took a different one instead, in which case `fallbackReason` explains why. Empty for backups taken before the requested type was recorded.", + "example": "incremental" + }, + "fallbackReason": { + "type": "string", + "description": "Why the backend ran a different backup type than the one requested. Empty when the backup ran as requested.", + "example": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls." + }, + "status": { + "type": "string", + "description": "Backup status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error), verified (integrity check passed).", + "example": "completed" + }, + "sizeBytes": { + "type": "integer", + "description": "Backup size in bytes.", + "format": "int32", + "example": 1073741824 + }, + "startedAt": { + "type": "string", + "description": "Backup start time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Backup completion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "verifiedAt": { + "type": "string", + "description": "Backup verification time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "expiresAt": { + "type": "string", + "description": "Backup expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "logPosition": { + "type": "string", + "description": "Transaction-log position the backup anchors at, in the engine's own notation: PostgreSQL `{walSegment}|{lsn}`, MySQL and MariaDB `{binlogFile}|{offset}`, MongoDB `{seconds}|{increment}`. Empty when the backup recorded no position, which is the case for backup types that carry none.", + "example": "000000010000000000000003|0\/3000148", + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message if backup failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "policyId", + "trigger", + "type", + "requestedType", + "fallbackReason", + "status", + "sizeBytes", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "policyId": "5e5ea5c16897e", + "trigger": "schedule", + "type": "full", + "requestedType": "incremental", + "fallbackReason": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls.", + "status": "completed", + "sizeBytes": 1073741824, + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "logPosition": "000000010000000000000003|0\/3000148", + "error": "" + } + }, + "dedicatedDatabaseBackupList": { + "description": "BackupList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of backups.", + "format": "int32", + "example": 5 + }, + "backups": { + "type": "array", + "description": "List of backups.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + }, + "example": [] + } + }, + "required": [ + "total", + "backups" + ], + "example": { + "total": 5, + "backups": [] + } + }, + "dedicatedDatabaseBackupStorage": { + "description": "BackupStorageConfig", + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Storage provider. Possible values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "example": "my-backup-bucket" + }, + "region": { + "type": "string", + "description": "Storage region.", + "example": "us-east-1" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "example": "backups\/" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage.", + "example": "https:\/\/minio.example.com" + } + }, + "required": [ + "provider", + "bucket", + "region", + "prefix", + "endpoint" + ], + "example": { + "provider": "s3", + "bucket": "my-backup-bucket", + "region": "us-east-1", + "prefix": "backups\/", + "endpoint": "https:\/\/minio.example.com" + } + }, + "billingAddress": { + "description": "Address", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Region ID", + "example": "eu-fr" + }, + "userId": { + "type": "string", + "description": "User ID", + "example": "5e5ea5c16897e" + }, + "streetAddress": { + "type": "string", + "description": "Street address", + "example": "13th Avenue" + }, + "addressLine2": { + "type": "string", + "description": "Address line 2", + "example": "", + "nullable": true + }, + "country": { + "type": "string", + "description": "Address country", + "example": "USA" + }, + "city": { + "type": "string", + "description": "city", + "example": "" + }, + "state": { + "type": "string", + "description": "state", + "example": "", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "postal code", + "example": "", + "nullable": true + } + }, + "required": [ + "$id", + "userId", + "streetAddress", + "country", + "city" + ], + "example": { + "$id": "eu-fr", + "userId": "5e5ea5c16897e", + "streetAddress": "13th Avenue", + "addressLine2": "", + "country": "USA", + "city": "", + "state": "", + "postalCode": "" + } + }, + "billingLimits": { + "description": "Limits", + "type": "object", + "properties": { + "bandwidth": { + "type": "integer", + "description": "Bandwidth limit", + "format": "int32", + "example": 5, + "nullable": true + }, + "storage": { + "type": "integer", + "description": "Storage limit", + "format": "int32", + "example": 150, + "nullable": true + }, + "users": { + "type": "integer", + "description": "Users limit", + "format": "int32", + "example": 200000, + "nullable": true + }, + "executions": { + "type": "integer", + "description": "Executions limit", + "format": "int32", + "example": 750000, + "nullable": true + }, + "GBHours": { + "type": "integer", + "description": "GBHours limit", + "format": "int32", + "example": 100, + "nullable": true + }, + "imageTransformations": { + "type": "integer", + "description": "Image transformations limit", + "format": "int32", + "example": 100, + "nullable": true + }, + "authPhone": { + "type": "integer", + "description": "Auth phone limit", + "format": "int32", + "example": 10, + "nullable": true + }, + "budgetLimit": { + "type": "integer", + "description": "Budget limit percentage", + "format": "int32", + "example": 100, + "nullable": true + } + }, + "example": { + "bandwidth": 5, + "storage": 150, + "users": 200000, + "executions": 750000, + "GBHours": 100, + "imageTransformations": 100, + "authPhone": 10, + "budgetLimit": 100 + } + }, + "billingPlan": { + "description": "billingPlan", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Plan ID.", + "example": "tier-0" + }, + "name": { + "type": "string", + "description": "Plan name", + "example": "Hobby" + }, + "desc": { + "type": "string", + "description": "Plan description", + "example": "Hobby plan" + }, + "order": { + "type": "integer", + "description": "Plan order", + "format": "int32", + "example": 0 + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 25 + }, + "trial": { + "type": "integer", + "description": "Trial days", + "format": "int32", + "example": 14 + }, + "bandwidth": { + "type": "integer", + "description": "Bandwidth", + "format": "int32", + "example": 25 + }, + "storage": { + "type": "integer", + "description": "Storage", + "format": "int32", + "example": 25 + }, + "imageTransformations": { + "type": "integer", + "description": "Image Transformations", + "format": "int32", + "example": 100 + }, + "screenshotsGenerated": { + "type": "integer", + "description": "Screenshots generated", + "format": "int32", + "example": 50 + }, + "members": { + "type": "integer", + "description": "Members", + "format": "int32", + "example": 25, + "nullable": true + }, + "webhooks": { + "type": "integer", + "description": "Webhooks", + "format": "int32", + "example": 25 + }, + "wafRules": { + "type": "integer", + "description": "Maximum WAF rules per project", + "format": "int32", + "example": 2 + }, + "projects": { + "type": "integer", + "description": "Projects", + "format": "int32", + "example": 2 + }, + "platforms": { + "type": "integer", + "description": "Platforms", + "format": "int32", + "example": 3 + }, + "users": { + "type": "integer", + "description": "Users", + "format": "int32", + "example": 25 + }, + "teams": { + "type": "integer", + "description": "Teams", + "format": "int32", + "example": 25 + }, + "databases": { + "type": "integer", + "description": "Databases", + "format": "int32", + "example": 25 + }, + "databasesReads": { + "type": "integer", + "description": "Database reads per month", + "format": "int32", + "example": 500000 + }, + "databasesWrites": { + "type": "integer", + "description": "Database writes per month", + "format": "int32", + "example": 250000 + }, + "databasesBatchSize": { + "type": "integer", + "description": "Database batch size limit", + "format": "int32", + "example": 100 + }, + "buckets": { + "type": "integer", + "description": "Buckets", + "format": "int32", + "example": 25 + }, + "fileSize": { + "type": "integer", + "description": "File size", + "format": "int32", + "example": 25 + }, + "functions": { + "type": "integer", + "description": "Functions", + "format": "int32", + "example": 25 + }, + "sites": { + "type": "integer", + "description": "Sites", + "format": "int32", + "example": 1 + }, + "executions": { + "type": "integer", + "description": "Function executions", + "format": "int32", + "example": 25 + }, + "executionsRetentionCount": { + "type": "integer", + "description": "Rolling max executions retained per function\/site", + "format": "int32", + "example": 10000 + }, + "GBHours": { + "type": "integer", + "description": "GB hours for functions", + "format": "int32", + "example": 100 + }, + "realtime": { + "type": "integer", + "description": "Realtime connections", + "format": "int32", + "example": 25 + }, + "realtimeMessages": { + "type": "integer", + "description": "Realtime messages", + "format": "int32", + "example": 100000 + }, + "messages": { + "type": "integer", + "description": "Messages per month", + "format": "int32", + "example": 1000 + }, + "topics": { + "type": "integer", + "description": "Topics for messaging", + "format": "int32", + "example": 1 + }, + "authPhone": { + "type": "integer", + "description": "SMS authentications per month", + "format": "int32", + "example": 10 + }, + "domains": { + "type": "integer", + "description": "Custom domains", + "format": "int32", + "example": 5 + }, + "activityLogs": { + "type": "integer", + "description": "Activity log days", + "format": "int32", + "example": 7, + "nullable": true + }, + "usageLogs": { + "type": "integer", + "description": "Usage history days", + "format": "int32", + "example": 30 + }, + "usageLogsIntervals": { + "type": "array", + "description": "Usage log time intervals allowed for this plan (e.g. 15m, 1h, 1d).", + "items": { + "type": "string" + }, + "example": [ + "15m", + "1h", + "1d" + ], + "nullable": true + }, + "usageAggregateOnlyMetrics": { + "type": "array", + "description": "Metrics this plan only records as a total. They cannot be broken down by dimension or filtered, because the stored events cover a fraction of the real traffic.", + "items": { + "type": "string" + }, + "example": [ + "network.requests", + "network.inbound", + "network.outbound" + ], + "nullable": true + }, + "projectInactivityDays": { + "type": "integer", + "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", + "format": "int32", + "example": 7 + }, + "alertLimit": { + "type": "integer", + "description": "Alert threshold percentage", + "format": "int32", + "example": 80 + }, + "usage": { + "type": "object", + "description": "Additional resources. Null when the plan does not support usage billing.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/usageBillingPlan" + } + ], + "nullable": true + }, + "addons": { + "type": "object", + "description": "Addons", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddon" + } + ] + }, + "budgetCapEnabled": { + "type": "boolean", + "description": "Budget cap enabled or disabled.", + "example": true + }, + "customSmtp": { + "type": "boolean", + "description": "Custom SMTP", + "example": true + }, + "emailBranding": { + "type": "boolean", + "description": "Appwrite branding in email", + "example": true + }, + "requiresPaymentMethod": { + "type": "boolean", + "description": "Does plan require payment method", + "example": true + }, + "requiresBillingAddress": { + "type": "boolean", + "description": "Does plan require billing address", + "example": true + }, + "eligibleCountries": { + "type": "array", + "description": "ISO country codes eligible for this regional plan. Empty means no restriction.", + "items": { + "type": "string" + }, + "example": [ + "IN", + "NP" + ], + "nullable": true + }, + "isAvailable": { + "type": "boolean", + "description": "Is the billing plan available", + "example": true + }, + "selfService": { + "type": "boolean", + "description": "Can user change the plan themselves", + "example": true + }, + "premiumSupport": { + "type": "boolean", + "description": "Does plan enable premium support", + "example": true + }, + "budgeting": { + "type": "boolean", + "description": "Does plan support budget cap", + "example": true + }, + "supportsMockNumbers": { + "type": "boolean", + "description": "Does plan support mock numbers", + "example": true + }, + "supportsOrganizationRoles": { + "type": "boolean", + "description": "Does plan support organization roles", + "example": true + }, + "supportsCredits": { + "type": "boolean", + "description": "Does plan support credit", + "example": true + }, + "supportsDedicatedDatabases": { + "type": "boolean", + "description": "Does plan support dedicated databases.", + "example": true + }, + "supportsDisposableEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking disposable email addresses.", + "example": true + }, + "supportsCanonicalEmailValidation": { + "type": "boolean", + "description": "Does plan support requiring canonical email addresses.", + "example": true + }, + "supportsFreeEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking free email addresses.", + "example": true + }, + "supportsCorporateEmailValidation": { + "type": "boolean", + "description": "Does plan support restricting sign-ups to corporate email addresses only.", + "example": true + }, + "supportsProjectSpecificRoles": { + "type": "boolean", + "description": "Does plan support project-specific member roles.", + "example": true + }, + "backupsEnabled": { + "type": "boolean", + "description": "Does plan support backup policies.", + "example": true, + "nullable": true + }, + "usagePerProject": { + "type": "boolean", + "description": "Whether usage addons are calculated per project.", + "example": true + }, + "supportedAddons": { + "type": "object", + "description": "Supported addons for this plan", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanSupportedAddons" + } + ] + }, + "backupPolicies": { + "type": "integer", + "description": "How many policies does plan support", + "format": "int32", + "example": 1, + "nullable": true + }, + "deploymentSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "format": "int32", + "example": 30 + }, + "buildSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "format": "int32", + "example": 2000 + }, + "databasesAllowEncrypt": { + "type": "boolean", + "description": "Does the plan support encrypted string attributes or not.", + "example": false + }, + "limits": { + "type": "object", + "description": "Plan specific limits", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanLimits" + } + ], + "nullable": true + }, + "group": { + "description": "Group of this billing plan for variants", + "example": "pro", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "free" + ], + "title": "free" + }, + { + "type": "string", + "enum": [ + "start" + ], + "title": "start" + }, + { + "type": "string", + "enum": [ + "pro" + ], + "title": "pro" + }, + { + "type": "string", + "enum": [ + "scale" + ], + "title": "scale" + } + ] + }, + "program": { + "type": "object", + "description": "Details of the program this plan is a part of.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/program" + } + ], + "nullable": true + }, + "databaseComputeCredit": { + "type": "number", + "description": "Included monthly dedicated-database compute credit in USD. Resets each billing cycle with no roll-over.", + "format": "double", + "example": 10 + }, + "dedicatedDatabases": { + "type": "object", + "description": "Dedicated database limits available to this plan.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanDedicatedDatabaseLimits" + } + ], + "nullable": true + } + }, + "required": [ + "$id", + "name", + "desc", + "order", + "price", + "trial", + "bandwidth", + "storage", + "imageTransformations", + "screenshotsGenerated", + "webhooks", + "wafRules", + "projects", + "platforms", + "users", + "teams", + "databases", + "databasesReads", + "databasesWrites", + "databasesBatchSize", + "buckets", + "fileSize", + "functions", + "sites", + "executions", + "executionsRetentionCount", + "GBHours", + "realtime", + "realtimeMessages", + "messages", + "topics", + "authPhone", + "domains", + "usageLogs", + "projectInactivityDays", + "alertLimit", + "addons", + "budgetCapEnabled", + "customSmtp", + "emailBranding", + "requiresPaymentMethod", + "requiresBillingAddress", + "isAvailable", + "selfService", + "premiumSupport", + "budgeting", + "supportsMockNumbers", + "supportsOrganizationRoles", + "supportsCredits", + "supportsDedicatedDatabases", + "supportsDisposableEmailValidation", + "supportsCanonicalEmailValidation", + "supportsFreeEmailValidation", + "supportsCorporateEmailValidation", + "supportsProjectSpecificRoles", + "usagePerProject", + "supportedAddons", + "deploymentSize", + "buildSize", + "databasesAllowEncrypt", + "group", + "databaseComputeCredit" + ], + "example": { + "$id": "tier-0", + "name": "Hobby", + "desc": "Hobby plan", + "order": 0, + "price": 25, + "trial": 14, + "bandwidth": 25, + "storage": 25, + "imageTransformations": 100, + "screenshotsGenerated": 50, + "members": 25, + "webhooks": 25, + "wafRules": 2, + "projects": 2, + "platforms": 3, + "users": 25, + "teams": 25, + "databases": 25, + "databasesReads": 500000, + "databasesWrites": 250000, + "databasesBatchSize": 100, + "buckets": 25, + "fileSize": 25, + "functions": 25, + "sites": 1, + "executions": 25, + "executionsRetentionCount": 10000, + "GBHours": 100, + "realtime": 25, + "realtimeMessages": 100000, + "messages": 1000, + "topics": 1, + "authPhone": 10, + "domains": 5, + "activityLogs": 7, + "usageLogs": 30, + "usageLogsIntervals": [ + "15m", + "1h", + "1d" + ], + "usageAggregateOnlyMetrics": [ + "network.requests", + "network.inbound", + "network.outbound" + ], + "projectInactivityDays": 7, + "alertLimit": 80, + "usage": null, + "addons": null, + "budgetCapEnabled": true, + "customSmtp": true, + "emailBranding": true, + "requiresPaymentMethod": true, + "requiresBillingAddress": true, + "eligibleCountries": [ + "IN", + "NP" + ], + "isAvailable": true, + "selfService": true, + "premiumSupport": true, + "budgeting": true, + "supportsMockNumbers": true, + "supportsOrganizationRoles": true, + "supportsCredits": true, + "supportsDedicatedDatabases": true, + "supportsDisposableEmailValidation": true, + "supportsCanonicalEmailValidation": true, + "supportsFreeEmailValidation": true, + "supportsCorporateEmailValidation": true, + "supportsProjectSpecificRoles": true, + "backupsEnabled": true, + "usagePerProject": true, + "supportedAddons": null, + "backupPolicies": 1, + "deploymentSize": 30, + "buildSize": 2000, + "databasesAllowEncrypt": false, + "limits": null, + "group": "pro", + "program": null, + "databaseComputeCredit": 10, + "dedicatedDatabases": null + } + }, + "billingPlanAddon": { + "description": "Addon", + "type": "object", + "properties": { + "seats": { + "type": "object", + "description": "Addon seats", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } + ], + "nullable": true + }, + "projects": { + "type": "object", + "description": "Addon projects", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } + ], + "nullable": true + } + }, + "example": { + "seats": null, + "projects": null + } + }, + "billingPlanAddonDetails": { + "description": "Details", + "type": "object", + "properties": { + "supported": { + "type": "boolean", + "description": "Is the addon supported in the plan?", + "example": true + }, + "planIncluded": { + "type": "integer", + "description": "Addon plan included value", + "format": "int32", + "example": 1 + }, + "limit": { + "type": "integer", + "description": "Addon limit", + "format": "int32", + "example": 5 + }, + "type": { + "type": "string", + "description": "Addon type", + "example": "numeric" + }, + "currency": { + "type": "string", + "description": "Price currency", + "example": "USD", + "nullable": true + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 5 + }, + "value": { + "type": "integer", + "description": "Resource value", + "format": "int32", + "example": 25 + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "example": "" + } + }, + "required": [ + "supported", + "planIncluded", + "limit", + "type", + "price", + "value", + "invoiceDesc" + ], + "example": { + "supported": true, + "planIncluded": 1, + "limit": 5, + "type": "numeric", + "currency": "USD", + "price": 5, + "value": 25, + "invoiceDesc": "" + } + }, + "billingPlanLimits": { + "description": "PlanLimits", + "type": "object", + "properties": { + "credits": { + "type": "integer", + "description": "Credits limit per billing cycle", + "format": "int32", + "example": 100, + "nullable": true + }, + "dailyCredits": { + "type": "integer", + "description": "Daily credits limit (if applicable)", + "format": "int32", + "example": 5, + "nullable": true + } + }, + "example": { + "credits": 100, + "dailyCredits": 5 + } + }, + "billingPlanDedicatedDatabaseLimits": { + "description": "dedicatedDatabaseLimits", + "type": "object", + "properties": { + "minCpu": { + "type": "integer", + "description": "Minimum CPU allocation in millicores.", + "format": "int32", + "example": 125, + "nullable": true + }, + "maxCpu": { + "type": "integer", + "description": "Maximum CPU allocation in millicores.", + "format": "int32", + "example": 32000, + "nullable": true + }, + "minMemoryMb": { + "type": "integer", + "description": "Minimum memory allocation in megabytes.", + "format": "int32", + "example": 128, + "nullable": true + }, + "maxMemoryMb": { + "type": "integer", + "description": "Maximum memory allocation in megabytes.", + "format": "int32", + "example": 262144, + "nullable": true + }, + "minStorageGb": { + "type": "integer", + "description": "Minimum storage allocation in gigabytes.", + "format": "int32", + "example": 1, + "nullable": true + }, + "maxStorageGb": { + "type": "integer", + "description": "Maximum storage allocation in gigabytes.", + "format": "int32", + "example": 16384, + "nullable": true + }, + "maxReplicas": { + "type": "integer", + "description": "Maximum number of high-availability replicas per dedicated database.", + "format": "int32", + "example": 5, + "nullable": true + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of client connections.", + "format": "int32", + "example": 10000, + "nullable": true + }, + "maxIpAllowlistSize": { + "type": "integer", + "description": "Maximum number of entries allowed in the IP allowlist.", + "format": "int32", + "example": 100, + "nullable": true + }, + "maxExtensions": { + "type": "integer", + "description": "Maximum number of database extensions that can be enabled.", + "format": "int32", + "example": 50, + "nullable": true + }, + "maxBackupRetentionDays": { + "type": "integer", + "description": "Maximum number of days a backup can be retained.", + "format": "int32", + "example": 365, + "nullable": true + }, + "maxPitrRetentionDays": { + "type": "integer", + "description": "Maximum number of days of point-in-time recovery data that can be retained.", + "format": "int32", + "example": 35, + "nullable": true + }, + "maxSqlApiMaxRows": { + "type": "integer", + "description": "Maximum number of rows a single SQL API query can return.", + "format": "int32", + "example": 1000000, + "nullable": true + }, + "maxSqlApiMaxBytes": { + "type": "integer", + "description": "Maximum response size in bytes for a single SQL API query.", + "format": "int32", + "example": 104857600, + "nullable": true + }, + "maxSqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum execution time in seconds for a single SQL API query.", + "format": "int32", + "example": 300, + "nullable": true + }, + "maxSqlApiAllowedStatements": { + "type": "integer", + "description": "Maximum number of SQL statement types that can be permitted through the SQL API.", + "format": "int32", + "example": 10, + "nullable": true + }, + "allowedSqlStatements": { + "type": "array", + "description": "SQL statement types permitted through the SQL API.", + "items": { + "type": "string" + }, + "example": [ + "select", + "insert", + "update", + "delete", + "explain" + ], + "nullable": true + }, + "allowedStorageClasses": { + "type": "array", + "description": "Storage classes available for dedicated databases.", + "items": { + "type": "string" + }, + "example": [ + "ssd" + ], + "nullable": true + }, + "allowedSyncModes": { + "type": "array", + "description": "Replica synchronization modes available for dedicated databases.", + "items": { + "type": "string" + }, + "example": [ + "async", + "sync", + "quorum" + ], + "nullable": true + } + }, + "example": { + "minCpu": 125, + "maxCpu": 32000, + "minMemoryMb": 128, + "maxMemoryMb": 262144, + "minStorageGb": 1, + "maxStorageGb": 16384, + "maxReplicas": 5, + "maxConnections": 10000, + "maxIpAllowlistSize": 100, + "maxExtensions": 50, + "maxBackupRetentionDays": 365, + "maxPitrRetentionDays": 35, + "maxSqlApiMaxRows": 1000000, + "maxSqlApiMaxBytes": 104857600, + "maxSqlApiTimeoutSeconds": 300, + "maxSqlApiAllowedStatements": 10, + "allowedSqlStatements": [ + "select", + "insert", + "update", + "delete", + "explain" + ], + "allowedStorageClasses": [ + "ssd" + ], + "allowedSyncModes": [ + "async", + "sync", + "quorum" + ] + } + }, + "billingPlanSupportedAddons": { + "description": "BillingPlanSupportedAddons", + "type": "object", + "properties": { + "baa": { + "type": "boolean", + "description": "Whether the plan supports BAA (Business Associate Agreement) addon", + "example": true + }, + "premiumGeoDB": { + "type": "boolean", + "description": "Whether the plan supports Premium Geo DB addon (project-level)", + "example": true + }, + "premiumGeoDBOrg": { + "type": "boolean", + "description": "Whether the plan supports Premium Geo DB addon (organization-level)", + "example": true + } + }, + "required": [ + "baa", + "premiumGeoDB", + "premiumGeoDBOrg" + ], + "example": { + "baa": true, + "premiumGeoDB": true, + "premiumGeoDBOrg": true + } + }, + "block": { + "description": "Block", + "type": "object", + "properties": { + "$createdAt": { + "type": "string", + "description": "Block creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "Resource type that is blocked", + "example": "project" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier that is blocked", + "example": "5e5ea5c16897e" + }, + "mode": { + "type": "string", + "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", + "example": "readOnly" + }, + "expiredAt": { + "type": "string", + "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "mode" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "mode": "readOnly", + "expiredAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "dedicatedDatabaseBranch": { + "description": "Branch", + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch identifier.", + "example": "a1b2c3d4" + }, + "branchName": { + "type": "string", + "description": "Branch name.", + "example": "branch-a1b2c3d4" + }, + "namespace": { + "type": "string", + "description": "Kubernetes namespace where the branch is deployed.", + "example": "db-myproject-mydb-branch-a1b2c3d4" + }, + "expiresAt": { + "type": "integer", + "description": "Unix timestamp when the branch expires.", + "format": "int32", + "example": 1711411200 + }, + "host": { + "type": "string", + "description": "Branch hostname for direct connections.", + "example": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center" + }, + "port": { + "type": "integer", + "description": "Branch port. Null until the backing reports one.", + "format": "int32", + "example": 5432, + "nullable": true + }, + "database": { + "type": "string", + "description": "Advertised catalog the client connects to. MySQL\/MariaDB use default; Postgres uses the routing label.", + "example": "db-myproject-mydb-a1b2c3d4" + }, + "username": { + "type": "string", + "description": "Database username. Shared with the parent database.", + "example": "appwrite" + }, + "password": { + "type": "string", + "description": "Database password. Shared with the parent database.", + "example": "********" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL is required.", + "example": false + }, + "engine": { + "type": "string", + "description": "Database engine. Possible values: postgresql, mysql, mongodb.", + "example": "postgresql" + }, + "connectionString": { + "type": "string", + "description": "Full connection string for the branch.", + "example": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" + } + }, + "required": [ + "branchId", + "branchName", + "namespace", + "expiresAt", + "host", + "database", + "username", + "password", + "ssl", + "engine", + "connectionString" + ], + "example": { + "branchId": "a1b2c3d4", + "branchName": "branch-a1b2c3d4", + "namespace": "db-myproject-mydb-branch-a1b2c3d4", + "expiresAt": 1711411200, + "host": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center", + "port": 5432, + "database": "db-myproject-mydb-a1b2c3d4", + "username": "appwrite", + "password": "********", + "ssl": false, + "engine": "postgresql", + "connectionString": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" + } + }, + "dedicatedDatabaseBranchList": { + "description": "BranchList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of branches.", + "format": "int32", + "example": 2 + }, + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranch" + }, + "example": [] + } + }, + "required": [ + "total", + "branches" + ], + "example": { + "total": 2, + "branches": [] + } + }, + "campaign": { + "description": "Campaign", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Campaign ID", + "example": "" + }, + "template": { + "type": "string", + "description": "Campaign template", + "example": "" + }, + "title": { + "type": "string", + "description": "Campaign title", + "example": "" + }, + "description": { + "type": "string", + "description": "Campaign description", + "example": "" + }, + "plan": { + "type": "string", + "description": "Billing plan campaign is associated with", + "example": "", + "nullable": true + }, + "cta": { + "type": "string", + "description": "Campaign CTA", + "example": "", + "nullable": true + }, + "claimed": { + "type": "string", + "description": "Campaign info when claimed", + "example": "", + "nullable": true + }, + "unclaimed": { + "type": "string", + "description": "Campaign infor when unclaimed", + "example": "", + "nullable": true + }, + "image": { + "type": "object", + "additionalProperties": true, + "description": "Campaign images" + }, + "reviews": { + "type": "array", + "description": "Campaign reviews", + "items": { + "$ref": "#\/components\/schemas\/review" + }, + "example": [], + "nullable": true + }, + "onlyNewOrgs": { + "type": "boolean", + "description": "Campaign valid only for new orgs.", + "nullable": true + }, + "footer": { + "type": "boolean", + "description": "Is footer", + "nullable": true + } + }, + "required": [ + "$id", + "template", + "title", + "description" + ], + "example": { + "$id": "", + "template": "", + "title": "", + "description": "", + "plan": "", + "cta": "", + "claimed": "", + "unclaimed": "", + "image": "", + "reviews": "", + "onlyNewOrgs": "", + "footer": "" + } + }, + "coupon": { + "description": "Coupon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "coupon ID", + "example": "NEWBONUS" + }, + "code": { + "type": "string", + "description": "coupon ID", + "example": "NEWBONUS" + }, + "credits": { + "type": "number", + "description": "Provided credit amount", + "format": "double", + "example": 50 + }, + "expiration": { + "type": "string", + "description": "Coupon expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "validity": { + "type": "integer", + "description": "Credit validity in days.", + "format": "int32", + "example": 180 + }, + "campaign": { + "type": "string", + "description": "Campaign the coupon is associated with`.", + "example": "AppwriteHeroes" + }, + "status": { + "type": "string", + "description": "Status of the coupon. Can be one of `disabled`, `active` or `expired`.", + "example": "disabled" + }, + "onlyNewOrgs": { + "type": "boolean", + "description": "If the coupon is only valid for new organizations or not.", + "example": true + } + }, + "required": [ + "$id", + "code", + "credits", + "expiration", + "validity", + "campaign", + "status", + "onlyNewOrgs" + ], + "example": { + "$id": "NEWBONUS", + "code": "NEWBONUS", + "credits": 50, + "expiration": "2020-10-15T06:38:00.000+00:00", + "validity": 180, + "campaign": "AppwriteHeroes", + "status": "disabled", + "onlyNewOrgs": true + } + }, + "credit": { + "description": "Credit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Credit ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Credit creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Credit update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Credit permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "couponId": { + "type": "string", + "description": "coupon ID", + "example": "NEWBONUS" + }, + "userId": { + "type": "string", + "description": "ID of the User.", + "example": "5e5ea5c16897e" + }, + "teamId": { + "type": "string", + "description": "ID of the Team.", + "example": "5e5ea5c16897e" + }, + "credits": { + "type": "number", + "description": "Provided credit amount", + "format": "double", + "example": 50 + }, + "total": { + "type": "number", + "description": "Provided credit amount", + "format": "double", + "example": 50 + }, + "expiration": { + "type": "string", + "description": "Credit expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Status of the credit. Can be one of `disabled`, `active` or `expired`.", + "example": "disabled" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "couponId", + "userId", + "teamId", + "credits", + "total", + "expiration", + "status" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "couponId": "NEWBONUS", + "userId": "5e5ea5c16897e", + "teamId": "5e5ea5c16897e", + "credits": 50, + "total": 50, + "expiration": "2020-10-15T06:38:00.000+00:00", + "status": "disabled" + } + }, + "creditAvailable": { + "description": "CreditAvailable", + "type": "object", + "properties": { + "available": { + "type": "integer", + "description": "Total available credits for the organization.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "available" + ], + "example": { + "available": 100 + } + }, + "creditList": { + "description": "CreditList", + "type": "object", + "properties": { + "credits": { + "type": "array", + "description": "Credits", + "items": { + "$ref": "#\/components\/schemas\/credit" + }, + "example": [ + 5 + ] + }, + "total": { + "type": "integer", + "description": "Total number of credits", + "format": "int32", + "example": 5 + }, + "available": { + "type": "number", + "description": "Total available credit balance in USD", + "format": "double", + "example": 5 + } + }, + "required": [ + "credits", + "total", + "available" + ], + "example": { + "credits": 5, + "total": 5, + "available": 5 + } + }, + "databaseMigration": { + "description": "Database Migration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database migration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Migration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Migration update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns the migrating database.", + "example": "5e5ea5c16897e" + }, + "databaseId": { + "type": "string", + "description": "Logical database ID being migrated.", + "example": "5e5ea5c16897e" + }, + "specification": { + "type": "string", + "description": "Dedicated compute specification provisioned for the migration target.", + "example": "s-2vcpu-4gb" + }, + "phase": { + "type": "string", + "description": "Migration phase. Possible values: pending, provisioned, capturing, backfilling, catching_up, verifying, ready_to_cutover, cutover, soaking, done, failed, rolled_back.", + "example": "pending" + }, + "attempt": { + "type": "integer", + "description": "Number of times a migration step has failed and been recorded.", + "format": "int32", + "example": 0 + }, + "lastError": { + "type": "string", + "description": "Reason the most recent migration step failed, empty while none has.", + "example": "" + }, + "lagDocuments": { + "type": "integer", + "description": "Number of documents still pending replication to the target.", + "format": "int32", + "example": 0 + }, + "changelogWatermark": { + "type": "integer", + "description": "Highest source changelog sequence applied to the target so far.", + "format": "int32", + "example": 0 + }, + "verifiedAt": { + "type": "string", + "description": "Time the migrated data was verified against the source in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "cutoverAt": { + "type": "string", + "description": "Time routing was flipped to the target in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "soakUntil": { + "type": "string", + "description": "Time the post-cutover soak window ends in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "autoCutover": { + "type": "boolean", + "description": "Whether the migration cuts over automatically once ready. Set when the migration is created and never changed afterwards, so it always reports what was asked for.", + "example": true + }, + "cutoverRequested": { + "type": "boolean", + "description": "Whether a cutover has been requested and not yet attempted. Set by the cutover endpoint and cleared when the attempt is made, so a cutover that fails a check parks the migration again rather than retrying on its own.", + "example": false + }, + "paused": { + "type": "boolean", + "description": "Whether the migration is paused.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "databaseId", + "specification", + "phase", + "attempt", + "lastError", + "lagDocuments", + "changelogWatermark", + "verifiedAt", + "cutoverAt", + "soakUntil", + "autoCutover", + "cutoverRequested", + "paused" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "databaseId": "5e5ea5c16897e", + "specification": "s-2vcpu-4gb", + "phase": "pending", + "attempt": 0, + "lastError": "", + "lagDocuments": 0, + "changelogWatermark": 0, + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "cutoverAt": "2020-10-15T06:38:00.000+00:00", + "soakUntil": "2020-10-15T06:38:00.000+00:00", + "autoCutover": true, + "cutoverRequested": false, + "paused": false + } + }, + "dedicatedDatabase": { + "description": "DedicatedDatabase", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Dedicated database ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Database creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns this database.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database display name.", + "example": "My Production Database" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, vectorsdb, mysql, postgresql, or mongodb.", + "example": "postgresql", + "nullable": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, or mongodb. Null until the backing reports one.", + "example": "postgresql", + "nullable": true + }, + "version": { + "type": "string", + "description": "Database engine version.", + "example": "16" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "example": "s-2vcpu-2gb" + }, + "backend": { + "type": "string", + "description": "Database backend provider. Possible values: edge.", + "example": "edge" + }, + "hostname": { + "type": "string", + "description": "Database hostname for connections.", + "example": "db-myproject-mydb.fra.appwrite.center" + }, + "connectionPort": { + "type": "integer", + "description": "Database port for connections. Derived from the engine when the backing has not reported one yet.", + "format": "int32", + "example": 5432, + "nullable": true + }, + "connectionUser": { + "type": "string", + "description": "Database username for connections.", + "example": "appwrite_user" + }, + "connectionPassword": { + "type": "string", + "description": "Database password for connections.", + "example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" + }, + "credentialGeneration": { + "type": "integer", + "description": "Committed generation of the primary connection credentials. Null until the rotation contract has been initialized.", + "format": "int32", + "example": 1, + "nullable": true + }, + "connectionString": { + "type": "string", + "description": "Full database connection string (URI format).", + "example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL\/TLS is required for client connections.", + "example": true + }, + "status": { + "type": "string", + "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", + "example": "ready" + }, + "containerStatus": { + "type": "string", + "description": "Container status for lifecycle-managed database runtimes: active, inactive, or failed (a wake was declined because the backing namespace is gone).", + "example": "active" + }, + "lastAccessedAt": { + "type": "string", + "description": "Last activity timestamp in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "idleUntil": { + "type": "string", + "description": "Display-only timestamp when the database is expected to be considered idle (ISO 8601 format). Derived from last activity; lifecycle transitions are driven by lifecycleState.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "lifecycleState": { + "type": "string", + "description": "Idle-lifecycle state of the database. Possible values: active, warm, cold, hibernated.", + "example": "active" + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "format": "int32", + "example": 15 + }, + "cpu": { + "type": "integer", + "description": "CPU allocated in millicores.", + "format": "int32", + "example": 2000 + }, + "memory": { + "type": "integer", + "description": "Memory allocated in MB.", + "format": "int32", + "example": 4096 + }, + "storage": { + "type": "integer", + "description": "Storage allocated in GB.", + "format": "int32", + "example": 100 + }, + "storageStatus": { + "type": "string", + "description": "Storage resize status. Possible values: idle (no resize in flight), resizing (the volume is growing towards storageTargetGb).", + "example": "resizing" + }, + "storageTargetGb": { + "type": "integer", + "description": "Size in GB the volume is growing towards while storageStatus is resizing. 0 when no resize is in flight.", + "format": "int32", + "example": 120 + }, + "storageResizeStartedAt": { + "type": "string", + "description": "Time the in-flight storage resize started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "storageClass": { + "type": "string", + "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", + "example": "ssd" + }, + "storageMaxGb": { + "type": "integer", + "description": "Maximum storage allowed in GB. 0 means use system default.", + "format": "int32", + "example": 100 + }, + "nodePool": { + "type": "string", + "description": "Kubernetes node pool where the database is scheduled.", + "example": "db-pool-4vcpu-8gb" + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas. High availability is enabled when greater than 0.", + "format": "int32", + "example": 2 + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode: async, sync, or quorum.", + "example": "async" + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent client connections. This is the limit a client pool may reach; the engine's own max_connections reported by the status endpoint is a smaller backend limit the pooler multiplexes onto and does not constrain a client pool.", + "format": "int32", + "example": 500 + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "format": "int32", + "example": 900 + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "items": { + "type": "string" + }, + "example": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ] + }, + "backupEnabled": { + "type": "boolean", + "description": "Whether automatic backups are enabled.", + "example": true + }, + "pitr": { + "type": "boolean", + "description": "Whether point-in-time recovery is enabled.", + "example": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "format": "int32", + "example": 14 + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Whether automatic storage expansion is enabled.", + "example": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage that triggers automatic expansion.", + "format": "int32", + "example": 85 + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "format": "int32", + "example": 30 + }, + "maintenanceWindowDay": { + "type": "string", + "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", + "example": "sun" + }, + "maintenanceWindowHourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) when the maintenance window starts.", + "format": "int32", + "example": 3 + }, + "metricsEnabled": { + "type": "boolean", + "description": "Whether metrics collection is enabled.", + "example": false + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Whether the SQL API sidecar is enabled for this database.", + "example": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types accepted by the SQL API. Defaults to read\/write DML only; DDL\/DCL types (CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE) are opt-in per database. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "items": { + "type": "string" + }, + "example": [ + "SELECT" + ] + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", + "format": "int32", + "example": 10000 + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", + "format": "int32", + "example": 10485760 + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", + "format": "int32", + "example": 30 + }, + "error": { + "type": "string", + "description": "Error message if status is failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "name", + "version", + "specification", + "backend", + "hostname", + "connectionUser", + "connectionPassword", + "connectionString", + "ssl", + "status", + "containerStatus", + "lifecycleState", + "idleTimeoutMinutes", + "cpu", + "memory", + "storage", + "storageStatus", + "storageTargetGb", + "storageClass", + "storageMaxGb", + "nodePool", + "replicas", + "syncMode", + "networkMaxConnections", + "networkIdleTimeoutSeconds", + "networkIPAllowlist", + "backupEnabled", + "pitr", + "pitrRetentionDays", + "storageAutoscaling", + "storageAutoscalingThresholdPercent", + "storageAutoscalingMaxGb", + "maintenanceWindowDay", + "maintenanceWindowHourUtc", + "metricsEnabled", + "sqlApiEnabled", + "sqlApiAllowedStatements", + "sqlApiMaxRows", + "sqlApiMaxBytes", + "sqlApiTimeoutSeconds", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "name": "My Production Database", + "api": "postgresql", + "engine": "postgresql", + "version": "16", + "specification": "s-2vcpu-2gb", + "backend": "edge", + "hostname": "db-myproject-mydb.fra.appwrite.center", + "connectionPort": 5432, + "connectionUser": "appwrite_user", + "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", + "credentialGeneration": 1, + "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require", + "ssl": true, + "status": "ready", + "containerStatus": "active", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00", + "idleUntil": "2020-10-15T06:38:00.000+00:00", + "lifecycleState": "active", + "idleTimeoutMinutes": 15, + "cpu": 2000, + "memory": 4096, + "storage": 100, + "storageStatus": "resizing", + "storageTargetGb": 120, + "storageResizeStartedAt": "2020-10-15T06:38:00.000+00:00", + "storageClass": "ssd", + "storageMaxGb": 100, + "nodePool": "db-pool-4vcpu-8gb", + "replicas": 2, + "syncMode": "async", + "networkMaxConnections": 500, + "networkIdleTimeoutSeconds": 900, + "networkIPAllowlist": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ], + "backupEnabled": true, + "pitr": true, + "pitrRetentionDays": 14, + "storageAutoscaling": true, + "storageAutoscalingThresholdPercent": 85, + "storageAutoscalingMaxGb": 30, + "maintenanceWindowDay": "sun", + "maintenanceWindowHourUtc": 3, + "metricsEnabled": false, + "sqlApiEnabled": true, + "sqlApiAllowedStatements": "SELECT", + "sqlApiMaxRows": 10000, + "sqlApiMaxBytes": 10485760, + "sqlApiTimeoutSeconds": 30, + "error": "" + } + }, + "dedicatedDatabaseExecution": { + "description": "Execution", + "type": "object", + "properties": { + "rows": { + "type": "array", + "description": "Result rows as a list of column-name => value maps. Empty for non-returning statements.", + "items": { + "type": "object" + }, + "example": [ + { + "id": 1, + "name": "example" + } + ] + }, + "rowCount": { + "type": "integer", + "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", + "format": "int32", + "example": 1 + }, + "columns": { + "type": "array", + "description": "Column metadata in result-set order.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecutionColumn" + }, + "example": [] + }, + "durationMs": { + "type": "integer", + "description": "Server-side execution time in milliseconds.", + "format": "int32", + "example": 12 + }, + "truncated": { + "type": "boolean", + "description": "True when the configured row or byte cap was hit and the result was truncated.", + "example": false + }, + "bytes": { + "type": "integer", + "description": "Serialised payload size in bytes.", + "format": "int32", + "example": 1024 + } + }, + "required": [ + "rows", + "rowCount", + "columns", + "durationMs", + "truncated", + "bytes" + ], + "example": { + "rows": [ + { + "id": 1, + "name": "example" + } + ], + "rowCount": 1, + "columns": [], + "durationMs": 12, + "truncated": false, + "bytes": 1024 + } + }, + "dedicatedDatabaseExecutionColumn": { + "description": "ExecutionColumn", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Column name as returned by the database.", + "example": "id" + }, + "type": { + "type": "string", + "description": "Engine-specific column type (e.g. int4, text, timestamptz).", + "example": "int4" + } + }, + "required": [ + "name", + "type" + ], + "example": { + "name": "id", + "type": "int4" + } + }, + "dedicatedDatabaseRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID being restored into.", + "example": "5e5ea5c16897e" + }, + "sourceDatabaseId": { + "type": "string", + "description": "Source database ID when restoring a backup into another database.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "backupId": { + "type": "string", + "description": "Backup ID used for restoration (null for PITR).", + "example": "5e5ea5c16897e", + "nullable": true + }, + "type": { + "type": "string", + "description": "Restoration type. Possible values: backup (restore from a specific backup snapshot), pitr (point-in-time recovery to a specific timestamp).", + "example": "backup" + }, + "status": { + "type": "string", + "description": "Restoration status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error).", + "example": "completed" + }, + "targetTime": { + "type": "string", + "description": "Target time for PITR restoration in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "startedAt": { + "type": "string", + "description": "Restoration start time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Restoration completion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message if restoration failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "type", + "status", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "sourceDatabaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "backupId": "5e5ea5c16897e", + "type": "backup", + "status": "completed", + "targetTime": "2020-10-15T06:38:00.000+00:00", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "error": "" + } + }, + "databaseStatus": { + "description": "Status", + "type": "object", + "properties": { + "health": { + "type": "string", + "description": "Overall health status: healthy, degraded, unhealthy, or unknown when nothing could be measured.", + "example": "healthy" + }, + "ready": { + "type": "boolean", + "description": "Whether the database is ready to accept connections.", + "example": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, or mongodb.", + "example": "postgresql" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "example": "17" + }, + "uptime": { + "type": "integer", + "description": "Database uptime in seconds.", + "format": "int32", + "example": 86400 + }, + "connections": { + "type": "object", + "description": "Connection statistics. Null when the database has not been probed.", + "example": { + "current": 12, + "max": 100 + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/databaseStatusConnections" + } + ], + "nullable": true + }, + "syncMode": { + "type": "string", + "description": "Requested replication sync mode. Possible values: async, sync, quorum. Compare with effectiveSyncMode for what the primary is enforcing.", + "example": "async" + }, + "effectiveSyncMode": { + "type": "string", + "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read.", + "example": "async", + "nullable": true + }, + "syncDegraded": { + "type": "boolean", + "description": "Whether the enforced replication is weaker than the requested syncMode.", + "example": false + }, + "syncAcknowledgements": { + "type": "integer", + "description": "Number of standby acknowledgements the primary waits for before a write is committed.", + "format": "int32", + "example": 1 + }, + "syncStandbyCount": { + "type": "integer", + "description": "Number of standbys registered with the primary for synchronous replication.", + "format": "int32", + "example": 2 + }, + "syncStateConfirmed": { + "type": "boolean", + "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", + "example": true, + "nullable": true + }, + "replicas": { + "type": "array", + "description": "List of database replicas and their status. Every configured member appears, including one the backend has not brought up, which is reported as not healthy.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusReplica" + }, + "example": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": null, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + ] + }, + "volumes": { + "type": "array", + "description": "Storage volume information.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusVolume" + }, + "example": [ + { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + ] + } + }, + "required": [ + "health", + "ready", + "engine", + "version", + "uptime", + "syncMode", + "syncDegraded", + "syncAcknowledgements", + "syncStandbyCount", + "replicas", + "volumes" + ], + "example": { + "health": "healthy", + "ready": true, + "engine": "postgresql", + "version": "17", + "uptime": 86400, + "connections": { + "current": 12, + "max": 100 + }, + "syncMode": "async", + "effectiveSyncMode": "async", + "syncDegraded": false, + "syncAcknowledgements": 1, + "syncStandbyCount": 2, + "syncStateConfirmed": true, + "replicas": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": null, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + ], + "volumes": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + } + }, + "dnsRecord": { + "description": "DNSRecord", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "DNS Record ID.", + "example": "5f40a6e10c65e" + }, + "$createdAt": { + "type": "string", + "description": "DNS Record creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "DNS Record update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "type": { + "type": "string", + "description": "DNS record type (e.g. A, CNAME, MX).", + "example": "A" + }, + "name": { + "type": "string", + "description": "Record name or subdomain.", + "example": "mail" + }, + "value": { + "type": "string", + "description": "Value of the record (IP address, domain, etc.).", + "example": "192.0.2.1" + }, + "ttl": { + "type": "integer", + "description": "Time to live (in seconds).", + "format": "int32", + "example": 86400 + }, + "priority": { + "type": "integer", + "description": "Record priority (commonly used for MX).", + "format": "int32", + "example": 10 + }, + "lock": { + "type": "boolean", + "description": "Whether this record is locked (read-only).", + "example": false + }, + "weight": { + "type": "integer", + "description": "Record weight (used for SRV records).", + "format": "int32", + "example": 10 + }, + "port": { + "type": "integer", + "description": "Target port (used for SRV records).", + "format": "int32", + "example": 443 + }, + "comment": { + "type": "string", + "description": "Comment for the DNS record.", + "example": "Mail server record" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "name", + "value", + "ttl", + "priority", + "lock", + "weight", + "port", + "comment" + ], + "example": { + "$id": "5f40a6e10c65e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "type": "A", + "name": "mail", + "value": "192.0.2.1", + "ttl": 86400, + "priority": 10, + "lock": false, + "weight": 10, + "port": 443, + "comment": "Mail server record" + } + }, + "domain": { + "description": "Domain", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Domain ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Domain creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Domain update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "registrar": { + "type": "string", + "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", + "example": "appwrite" + }, + "nameservers": { + "type": "string", + "description": "Nameservers setting. \"Appwrite\" or empty string.", + "example": "Appwrite" + }, + "expire": { + "type": "string", + "description": "Domain expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "renewal": { + "type": "string", + "description": "Domain renewal date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "autoRenewal": { + "type": "boolean", + "description": "If set to true, the domain will automatically renew.", + "example": true + }, + "renewalPrice": { + "type": "integer", + "description": "Renewal price (in cents).", + "format": "int32", + "example": 2599 + }, + "transferStatus": { + "description": "Transfer status for domains being transferred in. Null when the domain is not being transferred.", + "example": "pending_registry", + "title": "DomainTransferStatusEnum", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "transferrable" + ], + "title": "transferrable" + }, + { + "type": "string", + "enum": [ + "not_transferrable" + ], + "title": "not_transferrable" + }, + { + "type": "string", + "enum": [ + "pending_owner" + ], + "title": "pending_owner" + }, + { + "type": "string", + "enum": [ + "pending_admin" + ], + "title": "pending_admin" + }, + { + "type": "string", + "enum": [ + "pending_registry" + ], + "title": "pending_registry" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + }, + { + "type": "string", + "enum": [ + "service_unavailable" + ], + "title": "service_unavailable" + } + ], + "nullable": true + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "dnsRecords": { + "type": "array", + "description": "Dns records", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domain", + "registrar", + "nameservers", + "expire", + "renewal", + "autoRenewal", + "renewalPrice", + "teamId", + "dnsRecords" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domain": "example.com", + "registrar": "appwrite", + "nameservers": "Appwrite", + "expire": "2020-10-15T06:38:00.000+00:00", + "renewal": "2020-10-15T06:38:00.000+00:00", + "autoRenewal": true, + "renewalPrice": 2599, + "transferStatus": "pending_registry", + "teamId": "5e5ea5c16897e", + "dnsRecords": [] + } + }, + "domainPrice": { + "description": "DomainPrice", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "tld": { + "type": "string", + "description": "Top-level domain for the requested domain.", + "example": "com" + }, + "available": { + "type": "boolean", + "description": "Whether the domain is currently available for registration.", + "example": true + }, + "price": { + "type": "number", + "description": "Domain registration price. Null when the price could not be resolved, for example for an unsupported TLD.", + "format": "double", + "example": 25.99, + "nullable": true + }, + "periodYears": { + "type": "integer", + "description": "Price period in years.", + "format": "int32", + "example": 1 + }, + "premium": { + "type": "boolean", + "description": "Whether the domain is a premium domain.", + "example": false + }, + "renewalPrice": { + "type": "number", + "description": "Domain renewal price for the same period. Null when the domain was not priced or the registrar has no renewal price for it.", + "format": "double", + "example": 27.99, + "nullable": true + }, + "renewalPeriodYears": { + "type": "integer", + "description": "Renewal price period in years.", + "format": "int32", + "example": 1 + } + }, + "required": [ + "domain", + "tld", + "available", + "periodYears", + "premium", + "renewalPeriodYears" + ], + "example": { + "domain": "example.com", + "tld": "com", + "available": true, + "price": 25.99, + "periodYears": 1, + "premium": false, + "renewalPrice": 27.99, + "renewalPeriodYears": 1 + } + }, + "domainPurchase": { + "description": "DomainPurchase", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Purchase\/invoice ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Purchase creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Purchase update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domainId": { + "type": "string", + "description": "Domain document ID.", + "example": "5e5ea5c16897e" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "organizationId": { + "type": "string", + "description": "Team ID that owns the domain.", + "example": "5e5ea5c16897e" + }, + "status": { + "description": "Domain purchase status.", + "example": "pending", + "title": "DomainPurchaseStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "pending" + ], + "title": "pending" + }, + { + "type": "string", + "enum": [ + "succeeded" + ], + "title": "succeeded" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + } + ] + }, + "clientSecret": { + "type": "string", + "description": "Stripe client secret for 3DS; empty when not applicable.", + "example": "" + }, + "amount": { + "type": "number", + "description": "Purchase amount.", + "format": "double", + "example": 25.99 + }, + "currency": { + "type": "string", + "description": "Currency code.", + "example": "USD" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domainId", + "domain", + "organizationId", + "status", + "clientSecret", + "amount", + "currency" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domainId": "5e5ea5c16897e", + "domain": "example.com", + "organizationId": "5e5ea5c16897e", + "status": "pending", + "clientSecret": "", + "amount": 25.99, + "currency": "USD" + } + }, + "domainSuggestion": { + "description": "DomainSuggestion", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain suggestion.", + "example": "example.com" + }, + "premium": { + "type": "boolean", + "description": "Is the domain premium?", + "example": true + }, + "price": { + "type": "number", + "description": "Domain price.", + "format": "double", + "example": 25.99, + "nullable": true + }, + "available": { + "type": "boolean", + "description": "Is the domain available?", + "example": true + } + }, + "required": [ + "domain", + "premium", + "available" + ], + "example": { + "domain": "example.com", + "premium": true, + "price": 25.99, + "available": true + } + }, + "domainTransferOut": { + "description": "domainTransferOut", + "type": "object", + "properties": { + "authCode": { + "type": "string", + "description": "Domain transfer authorization code.", + "example": "mock_1a2b3c4d" + } + }, + "required": [ + "authCode" + ], + "example": { + "authCode": "mock_1a2b3c4d" + } + }, + "domainTransferStatus": { + "description": "domainTransferStatus", + "type": "object", + "properties": { + "status": { + "description": "Transfer status.", + "example": "pending_registry", + "title": "DomainTransferStatusEnum", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "transferrable" + ], + "title": "transferrable" + }, + { + "type": "string", + "enum": [ + "not_transferrable" + ], + "title": "not_transferrable" + }, + { + "type": "string", + "enum": [ + "pending_owner" + ], + "title": "pending_owner" + }, + { + "type": "string", + "enum": [ + "pending_admin" + ], + "title": "pending_admin" + }, + { + "type": "string", + "enum": [ + "pending_registry" + ], + "title": "pending_registry" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + }, + { + "type": "string", + "enum": [ + "service_unavailable" + ], + "title": "service_unavailable" + } + ] + }, + "reason": { + "type": "string", + "description": "Additional transfer status information.", + "example": "Transfer in progress" + }, + "timestamp": { + "type": "string", + "description": "Transfer status timestamp in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "status", + "reason", + "timestamp" + ], + "example": { + "status": "pending_registry", + "reason": "Transfer in progress", + "timestamp": "2020-10-15T06:38:00.000+00:00" + } + }, + "downgradeFeedback": { + "description": "Downgrade Feedback", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Feedback ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Feedback creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Feedback update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "title": { + "type": "string", + "description": "Feedback reason", + "example": "I encountered a bug and outage that caused my app to lose its value" + }, + "message": { + "type": "string", + "description": "Feedback message", + "example": "The platform experienced significant downtime which affected my users." + }, + "fromPlanId": { + "type": "string", + "description": "Plan ID downgrading from", + "example": "pro" + }, + "toPlanId": { + "type": "string", + "description": "Plan ID downgrading to", + "example": "free" + }, + "teamId": { + "type": "string", + "description": "Organization ID", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "User ID who submitted feedback", + "example": "5e5ea5c16897e" + }, + "version": { + "type": "string", + "description": "Console version", + "example": "1.8.0" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "title", + "message", + "fromPlanId", + "toPlanId", + "teamId", + "userId", + "version" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "title": "I encountered a bug and outage that caused my app to lose its value", + "message": "The platform experienced significant downtime which affected my users.", + "fromPlanId": "pro", + "toPlanId": "free", + "teamId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "version": "1.8.0" + } + }, + "estimation": { + "description": "Estimation", + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Total amount", + "format": "double", + "example": 50 + }, + "grossAmount": { + "type": "number", + "description": "Gross payable amount", + "format": "double", + "example": 50 + }, + "discount": { + "type": "number", + "description": "Discount amount", + "format": "double", + "example": 50, + "nullable": true + }, + "credits": { + "type": "number", + "description": "Credits amount", + "format": "double", + "example": 50 + }, + "items": { + "type": "array", + "description": "Estimation items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "example": [] + }, + "discounts": { + "type": "array", + "description": "Estimation discount items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "example": [] + }, + "trialDays": { + "type": "integer", + "description": "Trial days", + "format": "int32", + "example": 14 + }, + "trialEndDate": { + "type": "string", + "description": "Trial end date", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "amount", + "grossAmount", + "credits", + "items", + "discounts", + "trialDays" + ], + "example": { + "amount": 50, + "grossAmount": 50, + "discount": 50, + "credits": 50, + "items": [], + "discounts": [], + "trialDays": 14, + "trialEndDate": "2020-10-15T06:38:00.000+00:00" + } + }, + "estimationDeleteOrganization": { + "description": "DeleteOrganization", + "type": "object", + "properties": { + "unpaidInvoices": { + "type": "array", + "description": "List of unpaid invoices", + "items": { + "$ref": "#\/components\/schemas\/invoice" + }, + "example": [] + } + }, + "required": [ + "unpaidInvoices" + ], + "example": { + "unpaidInvoices": [] + } + }, + "estimation_item": { + "description": "Item", + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Label", + "example": "Plan name" + }, + "value": { + "type": "number", + "description": "Gross payable amount", + "format": "double", + "example": 50 + } + }, + "required": [ + "label", + "value" + ], + "example": { + "label": "Plan name", + "value": 50 + } + }, + "estimationPlanChange": { + "description": "EstimationPlanChange", + "type": "object", + "properties": { + "currentBillingPlanId": { + "type": "string", + "description": "Current billing plan ID", + "example": "tier-2" + }, + "targetBillingPlanId": { + "type": "string", + "description": "Target billing plan ID", + "example": "tier-0" + }, + "direction": { + "type": "string", + "description": "Direction of plan change: upgrade, downgrade, or same", + "example": "downgrade" + }, + "estimation": { + "type": "object", + "description": "Cost estimation details", + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeEstimationDetails" + } + ] + }, + "limits": { + "type": "object", + "description": "Plan limits and compliance information", + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeLimits" + } + ] + } + }, + "required": [ + "currentBillingPlanId", + "targetBillingPlanId", + "direction", + "estimation", + "limits" + ], + "example": { + "currentBillingPlanId": "tier-2", + "targetBillingPlanId": "tier-0", + "direction": "downgrade", + "estimation": null, + "limits": null + } + }, + "estimationUpdatePlan": { + "description": "UpdatePlan", + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Total amount", + "format": "double", + "example": 50 + }, + "grossAmount": { + "type": "number", + "description": "Gross payable amount", + "format": "double", + "example": 50 + }, + "discount": { + "type": "number", + "description": "Discount amount", + "format": "double", + "example": 50, + "nullable": true + }, + "credits": { + "type": "number", + "description": "Credits amount", + "format": "double", + "example": 50 + }, + "items": { + "type": "array", + "description": "Estimation items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "example": [] + }, + "discounts": { + "type": "array", + "description": "Estimation discount items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "example": [] + }, + "trialDays": { + "type": "integer", + "description": "Trial days", + "format": "int32", + "example": 14 + }, + "trialEndDate": { + "type": "string", + "description": "Trial end date", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "organizationCredits": { + "type": "number", + "description": "Organization's existing credits", + "format": "double", + "example": 0 + } + }, + "required": [ + "amount", + "grossAmount", + "credits", + "items", + "discounts", + "trialDays", + "organizationCredits" + ], + "example": { + "amount": 50, + "grossAmount": 50, + "discount": 50, + "credits": 50, + "items": [], + "discounts": [], + "trialDays": 14, + "trialEndDate": "2020-10-15T06:38:00.000+00:00", + "organizationCredits": 0 + } + }, + "growthConversation": { + "description": "Growth Conversation", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Conversation type.", + "example": "support" + }, + "email": { + "type": "string", + "description": "Email address the conversation was filed under. For a signed in console user this is the account email.", + "example": "john@appwrite.io" + }, + "organizationId": { + "type": "string", + "description": "Organization ID the conversation was filed against. Empty when none was given or the user is not a member.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "type", + "email", + "organizationId" + ], + "example": { + "type": "support", + "email": "john@appwrite.io", + "organizationId": "5e5ea5c16897e" + } + }, + "dedicatedDatabaseExtensions": { + "description": "Extensions", + "type": "object", + "properties": { + "installed": { + "type": "array", + "description": "List of installed extensions.", + "items": { + "type": "string" + }, + "example": [ + "pgvector", + "uuid-ossp" + ] + }, + "available": { + "type": "array", + "description": "List of available extensions that can be installed.", + "items": { + "type": "string" + }, + "example": [ + "postgis", + "pg_trgm" + ] + }, + "metadata": { + "type": "array", + "description": "Curated metadata (display name, description, category) for each available extension.", + "items": { + "$ref": "#\/components\/schemas\/postgresExtension" + }, + "example": [] + } + }, + "required": [ + "installed", + "available", + "metadata" + ], + "example": { + "installed": [ + "pgvector", + "uuid-ossp" + ], + "available": [ + "postgis", + "pg_trgm" + ], + "metadata": [] + } + }, + "dedicatedDatabaseMember": { + "description": "Member", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Member identifier.", + "example": "1" + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology and this member has not been probed, so no member can be named the write target).", + "example": "replica" + }, + "status": { + "type": "string", + "description": "Member pod status. Possible values: pending (configured but absent from the backend topology, so nothing is bringing it up), provisioning (pod missing or Pending), starting (Running but not Ready), active (Running and Ready), failed (Failed phase or CrashLoopBackOff container), or the lowercased pod phase reported by the cluster.", + "example": "active" + }, + "replicating": { + "type": "boolean", + "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not active, or whose probe did not answer, has none yet. False is a reading and null is the absence of one, so the two are not interchangeable. Read it beside lagSeconds before expecting a failover that names no target to find a promotable standby: a member streaming at a known lag is one, and a member reporting null is not evidence either way.", + "example": true, + "nullable": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds. Null when the lag is not known: a primary has none to report, and a member the backend has not probed has none yet. Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", + "format": "double", + "example": 0.5, + "nullable": true + } + }, + "required": [ + "$id", + "role", + "status" + ], + "example": { + "$id": "1", + "role": "replica", + "status": "active", + "replicating": true, + "lagSeconds": 0.5 + } + }, + "dedicatedDatabaseOperation": { + "description": "Operation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Operation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Operation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID the operation ran against.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Operation type, such as provision, update, credentials-update, restore, pausing, resuming, failover, backup-create or cross-region-enable.", + "example": "update" + }, + "status": { + "type": "string", + "description": "Operation status. Possible values: queued (accepted and waiting to resume), running (in progress), completed (finished successfully), failed (ended in an error).", + "example": "completed" + }, + "attempts": { + "type": "integer", + "description": "Number of times this operation has been attempted.", + "format": "int32", + "example": 1 + }, + "requestedAt": { + "type": "string", + "description": "Time the operation was requested, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "startedAt": { + "type": "string", + "description": "Time the operation started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Time the operation reached a terminal state, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "errorCode": { + "type": "string", + "description": "Machine-readable failure code. `Interrupted` marks an attempt that ended before its outcome could be confirmed.", + "example": "Interrupted" + }, + "errorMessage": { + "type": "string", + "description": "Failure message if the operation failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "type", + "status", + "attempts", + "errorCode", + "errorMessage" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "type": "update", + "status": "completed", + "attempts": 1, + "requestedAt": "2020-10-15T06:38:00.000+00:00", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "errorCode": "Interrupted", + "errorMessage": "" + } + }, + "dedicatedDatabaseOperationList": { + "description": "OperationList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of operations.", + "format": "int32", + "example": 5 + }, + "operations": { + "type": "array", + "description": "List of operations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + }, + "example": [] + } + }, + "required": [ + "total", + "operations" + ], + "example": { + "total": 5, + "operations": "" + } + }, + "dedicatedDatabaseReplicas": { + "description": "Replicas", + "type": "object", + "properties": { + "replicas": { + "type": "integer", + "description": "Number of configured replicas. Zero means high availability is disabled.", + "format": "int32", + "example": 2 + }, + "syncMode": { + "type": "string", + "description": "Requested replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm). This is what was asked for; compare it with effectiveSyncMode for what the primary is enforcing.", + "example": "async" + }, + "effectiveSyncMode": { + "type": "string", + "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read. A value below the requested syncMode means writes are being acknowledged with weaker durability than configured.", + "example": "async", + "nullable": true + }, + "syncDegraded": { + "type": "boolean", + "description": "Whether the enforced replication is weaker than the requested syncMode.", + "example": false + }, + "syncAcknowledgements": { + "type": "integer", + "description": "Number of standby acknowledgements the primary waits for before a write is committed. Zero means writes are acknowledged locally.", + "format": "int32", + "example": 1 + }, + "syncStandbyCount": { + "type": "integer", + "description": "Number of standbys registered with the primary for synchronous replication.", + "format": "int32", + "example": 2 + }, + "syncStateConfirmed": { + "type": "boolean", + "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", + "example": true, + "nullable": true + }, + "members": { + "type": "array", + "description": "Per-pod statuses for the primary and every replica.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseMember" + }, + "example": [] + } + }, + "required": [ + "replicas", + "syncMode", + "syncDegraded", + "syncAcknowledgements", + "syncStandbyCount", + "members" + ], + "example": { + "replicas": 2, + "syncMode": "async", + "effectiveSyncMode": "async", + "syncDegraded": false, + "syncAcknowledgements": 1, + "syncStandbyCount": 2, + "syncStateConfirmed": true, + "members": [] + } + }, + "proxyInvalidation": { + "description": "Invalidation", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Invalidation type. Possible values are \"tag\", \"path\", or \"all\".", + "example": "tag" + }, + "reference": { + "type": "string", + "description": "Invalidated reference. Depending on type this is a cache tag name, a URL path, or empty when type is all.", + "example": "products" + }, + "status": { + "type": "string", + "description": "Invalidation status.", + "example": "success" + } + }, + "required": [ + "domain", + "type", + "reference", + "status" + ], + "example": { + "domain": "appwrite.company.com", + "type": "tag", + "reference": "products", + "status": "success" + } + }, + "invoice": { + "description": "Invoice", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Invoice ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Invoice creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Invoice update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Invoice permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "teamId": { + "type": "string", + "description": "Project ID", + "example": "5e5ea5c16897e" + }, + "aggregationId": { + "type": "string", + "description": "Aggregation ID", + "example": "5e5ea5c16897e" + }, + "plan": { + "type": "string", + "description": "Billing plan selected. Can be one of `tier-0`, `tier-1` or `tier-2`.", + "example": "tier-1" + }, + "usage": { + "type": "array", + "description": "Usage breakdown per resource", + "items": { + "$ref": "#\/components\/schemas\/usageResources" + }, + "example": [] + }, + "amount": { + "type": "number", + "description": "Invoice Amount", + "format": "double", + "example": 50 + }, + "tax": { + "type": "number", + "description": "Tax percentage", + "format": "double", + "example": 17 + }, + "taxAmount": { + "type": "number", + "description": "Tax amount", + "format": "double", + "example": 12.5 + }, + "vat": { + "type": "number", + "description": "VAT percentage", + "format": "double", + "example": 17 + }, + "vatAmount": { + "type": "number", + "description": "VAT amount", + "format": "double", + "example": 12.5 + }, + "grossAmount": { + "type": "number", + "description": "Gross amount after vat, tax, and discounts applied.", + "format": "double", + "example": 12.5 + }, + "creditsUsed": { + "type": "number", + "description": "Credits used.", + "format": "double", + "example": 30 + }, + "currency": { + "type": "string", + "description": "Currency the invoice is in", + "example": "USD" + }, + "clientSecret": { + "type": "string", + "description": "Client secret for processing failed payments in front-end", + "example": "pi_daslfasdfkla_asdkfl", + "nullable": true + }, + "status": { + "type": "string", + "description": "Invoice status", + "example": "succeeded" + }, + "type": { + "type": "string", + "description": "Invoice type. Can be one of `subscription`, `domain_purchase`, `domain_renewal`, `domain_transfer`, or `addon_*`.", + "example": "subscription" + }, + "lastError": { + "type": "string", + "description": "Last payment error associated with the invoice", + "example": "Your card has insufficient balance.", + "nullable": true + }, + "dueAt": { + "type": "string", + "description": "Invoice due date.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "from": { + "type": "string", + "description": "Beginning date of the invoice", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "to": { + "type": "string", + "description": "End date of the invoice", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "teamId", + "aggregationId", + "plan", + "usage", + "amount", + "tax", + "taxAmount", + "vat", + "vatAmount", + "grossAmount", + "creditsUsed", + "currency", + "status", + "type", + "dueAt", + "from", + "to" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "teamId": "5e5ea5c16897e", + "aggregationId": "5e5ea5c16897e", + "plan": "tier-1", + "usage": [], + "amount": 50, + "tax": 17, + "taxAmount": 12.5, + "vat": 17, + "vatAmount": 12.5, + "grossAmount": 12.5, + "creditsUsed": 30, + "currency": "USD", + "clientSecret": "pi_daslfasdfkla_asdkfl", + "status": "succeeded", + "type": "subscription", + "lastError": "Your card has insufficient balance.", + "dueAt": "2020-10-15T06:38:00.000+00:00", + "from": "2020-10-15T06:38:00.000+00:00", + "to": "2020-10-15T06:38:00.000+00:00" + } + }, + "managerBlock": { + "description": "ManagerBlock", + "type": "object", + "properties": { + "$createdAt": { + "type": "string", + "description": "Block creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "Resource type that is blocked", + "example": "project" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier that is blocked", + "example": "5e5ea5c16897e" + }, + "mode": { + "type": "string", + "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", + "example": "readOnly" + }, + "expiredAt": { + "type": "string", + "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "reason": { + "type": "string", + "description": "Reason for the block. Can be null if no reason was provided.", + "example": "Payment overdue", + "nullable": true + }, + "projectName": { + "type": "string", + "description": "Name of the project this block applies to.", + "example": "My Project" + }, + "region": { + "type": "string", + "description": "Region of the project this block applies to.", + "example": "fra" + }, + "organizationName": { + "type": "string", + "description": "Name of the organization that owns the project.", + "example": "Acme Inc." + }, + "organizationId": { + "type": "string", + "description": "ID of the organization that owns the project.", + "example": "5e5ea5c16897e" + }, + "billingPlan": { + "type": "string", + "description": "Billing plan of the organization that owns the project.", + "example": "pro" + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "mode", + "projectName", + "region", + "organizationName", + "organizationId", + "billingPlan" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "mode": "readOnly", + "expiredAt": "2020-10-15T06:38:00.000+00:00", + "reason": "Payment overdue", + "projectName": "My Project", + "region": "fra", + "organizationName": "Acme Inc.", + "organizationId": "5e5ea5c16897e", + "billingPlan": "pro" + } + }, + "managerBlockDelete": { + "description": "ManagerBlockDelete", + "type": "object", + "properties": { + "deleted": { + "type": "integer", + "description": "Number of blocks deleted", + "format": "int32", + "example": 1 + }, + "blocks": { + "type": "array", + "description": "List of deleted blocks", + "items": { + "$ref": "#\/components\/schemas\/managerBlock" + }, + "example": [] + } + }, + "required": [ + "deleted", + "blocks" + ], + "example": { + "deleted": 1, + "blocks": [] + } + }, + "organization": { + "description": "Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "billingBudget": { + "type": "integer", + "description": "Project budget limit. Null when no budget is set.", + "format": "int32", + "example": 50, + "nullable": true + }, + "budgetAlerts": { + "type": "array", + "description": "Project budget limit", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [ + 50, + 75 + ] + }, + "billingPlan": { + "type": "string", + "description": "Organization's billing plan ID.", + "example": "tier-1" + }, + "billingPlanId": { + "type": "string", + "description": "Organization's billing plan ID.", + "example": "tier-1" + }, + "billingPlanDetails": { + "type": "object", + "description": "Organization's billing plan.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlan" + } + ] + }, + "billingEmail": { + "type": "string", + "description": "Billing email set for the organization.", + "example": "billing@org.example" + }, + "billingStartDate": { + "type": "string", + "description": "Billing cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingCurrentInvoiceDate": { + "type": "string", + "description": "Current invoice cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingNextInvoiceDate": { + "type": "string", + "description": "Next invoice cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingTrialStartDate": { + "type": "string", + "description": "Start date of trial.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingTrialDays": { + "type": "integer", + "description": "Number of trial days.", + "format": "int32", + "example": 14, + "nullable": true + }, + "billingAggregationId": { + "type": "string", + "description": "Current active aggregation id.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "billingInvoiceId": { + "type": "string", + "description": "Current active aggregation id.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "paymentMethodId": { + "type": "string", + "description": "Default payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "billingAddressId": { + "type": "string", + "description": "Default payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "backupPaymentMethodId": { + "type": "string", + "description": "Backup payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "status": { + "type": "string", + "description": "Team status.", + "example": "active" + }, + "remarks": { + "type": "string", + "description": "Remarks on team status.", + "example": "Pending initial payment", + "nullable": true + }, + "agreementBAA": { + "type": "string", + "description": "Organization agreements", + "example": "", + "nullable": true + }, + "programManagerName": { + "type": "string", + "description": "Program manager's name.", + "example": "", + "nullable": true + }, + "programManagerCalendar": { + "type": "string", + "description": "Program manager's calendar link.", + "example": "", + "nullable": true + }, + "programDiscordChannelName": { + "type": "string", + "description": "Program's discord channel name.", + "example": "", + "nullable": true + }, + "programDiscordChannelUrl": { + "type": "string", + "description": "Program's discord channel URL.", + "example": "", + "nullable": true + }, + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true + }, + "billingPlanDowngrade": { + "type": "string", + "description": "Billing plan selected for downgrade.", + "example": "tier-1", + "nullable": true + }, + "billingTaxId": { + "type": "string", + "description": "Tax Id", + "example": "", + "nullable": true + }, + "markedForDeletion": { + "type": "boolean", + "description": "Marked for deletion" + }, + "platform": { + "type": "string", + "description": "Product with which the organization is associated (appwrite or imagine)", + "example": "imagine" + }, + "projects": { + "type": "array", + "description": "Selected projects", + "items": { + "type": "string" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs", + "budgetAlerts", + "billingPlan", + "billingPlanId", + "billingPlanDetails", + "billingEmail", + "status", + "markedForDeletion", + "platform", + "projects" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "billingBudget": 50, + "budgetAlerts": [ + 50, + 75 + ], + "billingPlan": "tier-1", + "billingPlanId": "tier-1", + "billingPlanDetails": null, + "billingEmail": "billing@org.example", + "billingStartDate": "2020-10-15T06:38:00.000+00:00", + "billingCurrentInvoiceDate": "2020-10-15T06:38:00.000+00:00", + "billingNextInvoiceDate": "2020-10-15T06:38:00.000+00:00", + "billingTrialStartDate": "2020-10-15T06:38:00.000+00:00", + "billingTrialDays": 14, + "billingAggregationId": "adbc3de4rddfsd", + "billingInvoiceId": "adbc3de4rddfsd", + "paymentMethodId": "adbc3de4rddfsd", + "billingAddressId": "adbc3de4rddfsd", + "backupPaymentMethodId": "adbc3de4rddfsd", + "status": "active", + "remarks": "Pending initial payment", + "agreementBAA": "", + "programManagerName": "", + "programManagerCalendar": "", + "programDiscordChannelName": "", + "programDiscordChannelUrl": "", + "billingLimits": "", + "billingPlanDowngrade": "tier-1", + "billingTaxId": "", + "markedForDeletion": "", + "platform": "imagine", + "projects": "" + } + }, + "paymentAuthentication": { + "description": "PaymentAuthentication", + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Message for the end user to show on Console.", + "example": "" + }, + "clientSecret": { + "type": "string", + "description": "Stripe client secret to use for validation.", + "example": "" + }, + "organizationId": { + "type": "string", + "description": "Organization ID for which the payment authentication is needed.", + "example": "" + }, + "invoiceId": { + "type": "string", + "description": "Invoice ID against which the payment needs to be validated.", + "example": "" + }, + "addonId": { + "type": "string", + "description": "Addon ID to use when calling the addon validate endpoint. Empty when authentication is not for an addon.", + "example": "" + }, + "projectId": { + "type": "string", + "description": "Project ID for project-level addon payments. Empty for organization-level addons.", + "example": "" + } + }, + "required": [ + "message", + "clientSecret", + "organizationId", + "invoiceId", + "addonId", + "projectId" + ], + "example": { + "message": "", + "clientSecret": "", + "organizationId": "", + "invoiceId": "", + "addonId": "", + "projectId": "" + } + }, + "paymentMethod": { + "description": "paymentMethod", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Payment Method ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Payment method creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Payment method update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Payment method permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "providerMethodId": { + "type": "string", + "description": "Payment method ID from the payment provider", + "example": "abdk3ed3sdkfj" + }, + "clientSecret": { + "type": "string", + "description": "Client secret hash for payment setup", + "example": "seti_ddfe" + }, + "providerUserId": { + "type": "string", + "description": "User ID from the payment provider.", + "example": "abdk3ed3sdkfj" + }, + "userId": { + "type": "string", + "description": "ID of the Team.", + "example": "5e5ea5c16897e" + }, + "expiryMonth": { + "type": "integer", + "description": "Expiry month of the payment method.", + "format": "int32", + "example": 2, + "nullable": true + }, + "expiryYear": { + "type": "integer", + "description": "Expiry year of the payment method.", + "format": "int32", + "example": 2024, + "nullable": true + }, + "last4": { + "type": "string", + "description": "Last 4 digit of the payment method", + "example": "4242", + "nullable": true + }, + "brand": { + "type": "string", + "description": "Payment method brand", + "example": "visa", + "nullable": true + }, + "name": { + "type": "string", + "description": "Name of the owner", + "example": "John Doe", + "nullable": true + }, + "mandateId": { + "type": "string", + "description": "Mandate ID of the payment method", + "example": "yxc", + "nullable": true + }, + "country": { + "type": "string", + "description": "Country of the payment method", + "example": "de", + "nullable": true + }, + "state": { + "type": "string", + "description": "State of the payment method", + "example": "", + "nullable": true + }, + "lastError": { + "type": "string", + "description": "Last payment error associated with the payment method.", + "example": "Your card has insufficient funds.", + "nullable": true + }, + "default": { + "type": "boolean", + "description": "True when it's the default payment method.", + "example": false + }, + "expired": { + "type": "boolean", + "description": "True when payment method has expired.", + "example": false + }, + "failed": { + "type": "boolean", + "description": "True when payment method has failed to process multiple times.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "providerMethodId", + "clientSecret", + "providerUserId", + "userId", + "default", + "expired", + "failed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "providerMethodId": "abdk3ed3sdkfj", + "clientSecret": "seti_ddfe", + "providerUserId": "abdk3ed3sdkfj", + "userId": "5e5ea5c16897e", + "expiryMonth": 2, + "expiryYear": 2024, + "last4": "4242", + "brand": "visa", + "name": "John Doe", + "mandateId": "yxc", + "country": "de", + "state": "", + "lastError": "Your card has insufficient funds.", + "default": false, + "expired": false, + "failed": false + } + }, + "dedicatedDatabasePITRWindows": { + "description": "PITRWindows", + "type": "object", + "properties": { + "earliest": { + "type": "string", + "description": "Earliest available recovery point.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latest": { + "type": "string", + "description": "Latest available recovery point.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "earliest", + "latest" + ], + "example": { + "earliest": "2020-10-15T06:38:00.000+00:00", + "latest": "2020-10-15T06:38:00.000+00:00" + } + }, + "planChangeEstimationDetails": { + "description": "PlanChangeEstimationDetails", + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "Currency code", + "example": "USD" + }, + "grossAmount": { + "type": "number", + "description": "Gross amount after all discounts and credits", + "format": "double", + "example": 15 + }, + "credits": { + "type": "number", + "description": "Credits applied from coupon", + "format": "double", + "example": 0 + }, + "organizationCredits": { + "type": "number", + "description": "Organization's existing credits applied", + "format": "double", + "example": 5 + }, + "discount": { + "type": "number", + "description": "Discount amount from prorated invoices", + "format": "double", + "example": 0 + }, + "amount": { + "type": "number", + "description": "Total amount before discounts and credits", + "format": "double", + "example": 20 + }, + "nextInvoiceDate": { + "type": "string", + "description": "Next invoice date", + "example": "2025-12-01T00:00:00.000Z" + }, + "items": { + "type": "array", + "description": "Line items breakdown", + "items": { + "type": "object" + }, + "example": [ + { + "label": "Free plan", + "value": 0 + }, + { + "label": "Additional seats", + "value": 10 + } + ] + }, + "discounts": { + "type": "array", + "description": "Applied discounts breakdown", + "items": { + "type": "object" + }, + "example": [ + { + "label": "Organization credits", + "value": 5 + } + ] + } + }, + "required": [ + "currency", + "grossAmount", + "credits", + "organizationCredits", + "discount", + "amount", + "nextInvoiceDate", + "items", + "discounts" + ], + "example": { + "currency": "USD", + "grossAmount": 15, + "credits": 0, + "organizationCredits": 5, + "discount": 0, + "amount": 20, + "nextInvoiceDate": "2025-12-01T00:00:00.000Z", + "items": [ + { + "label": "Free plan", + "value": 0 + }, + { + "label": "Additional seats", + "value": 10 + } + ], + "discounts": [ + { + "label": "Organization credits", + "value": 5 + } + ] + } + }, + "planChangeLimits": { + "description": "PlanChangeLimits", + "type": "object", + "properties": { + "canChangePlan": { + "type": "boolean", + "description": "Whether the plan change is allowed", + "example": false + }, + "unsupportedAddons": { + "type": "array", + "description": "Active addon keys that the target plan does not support. When non-empty, `canChangePlan` is false.", + "items": { + "type": "string" + }, + "example": [ + "baa" + ] + }, + "projects": { + "type": "object", + "description": "Project count against the target plan limit", + "example": {}, + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + } + ] + }, + "members": { + "type": "object", + "description": "Organization member count against the target plan limit", + "example": {}, + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + } + ] + }, + "domains": { + "type": "object", + "description": "Custom domain count against the target plan limit", + "example": {}, + "allOf": [ + { + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + } + ] + }, + "nonCompliantProjects": { + "type": "integer", + "description": "Number of projects exceeding target plan limits", + "format": "int32", + "example": 2 + }, + "projectCompliance": { + "type": "array", + "description": "Per-project compliance details. Populated for downgrades only.", + "items": { + "$ref": "#\/components\/schemas\/planChangeProjectCompliance" + }, + "example": [] + } + }, + "required": [ + "canChangePlan", + "unsupportedAddons", + "projects", + "members", + "domains", + "nonCompliantProjects", + "projectCompliance" + ], + "example": { + "canChangePlan": false, + "unsupportedAddons": [ + "baa" + ], + "projects": {}, + "members": {}, + "domains": {}, + "nonCompliantProjects": 2, + "projectCompliance": [] + } + }, + "planChangeProjectCompliance": { + "description": "PlanChangeProjectCompliance", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID", + "example": "proj_a" + }, + "name": { + "type": "string", + "description": "Project name", + "example": "Marketing Site" + }, + "isCompliant": { + "type": "boolean", + "description": "Whether the project complies with target plan limits", + "example": false + }, + "resources": { + "type": "array", + "description": "Resource compliance details", + "items": { + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + }, + "example": [] + }, + "error": { + "type": "string", + "description": "Failure reason when compliance could not be evaluated. Present only when the project DB or Regions API was unreachable; in that case `isCompliant` is false (fail closed) and `resources` is empty.", + "example": "Failed to get project compliance from Regions API. Status: 500", + "nullable": true + } + }, + "required": [ + "$id", + "name", + "isCompliant", + "resources" + ], + "example": { + "$id": "proj_a", + "name": "Marketing Site", + "isCompliant": false, + "resources": [], + "error": "Failed to get project compliance from Regions API. Status: 500" + } + }, + "planChangeResourceCompliance": { + "description": "PlanChangeResourceCompliance", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Resource type", + "example": "databases" + }, + "currentUsage": { + "type": "integer", + "description": "Current usage count", + "format": "int32", + "example": 3 + }, + "limit": { + "type": "integer", + "description": "Allowed limit in target plan", + "format": "int32", + "example": 1 + }, + "status": { + "type": "string", + "description": "Compliance status. Either `over_limit` or `within_limit`.", + "example": "over_limit" + }, + "excess": { + "type": "integer", + "description": "Number of resources exceeding the limit", + "format": "int32", + "example": 2 + }, + "resolutionHint": { + "type": "string", + "description": "Suggestion for resolving the compliance issue. Empty when the resource is within limits.", + "example": "Delete or migrate 2 databases." + } + }, + "required": [ + "type", + "currentUsage", + "limit", + "status", + "excess", + "resolutionHint" + ], + "example": { + "type": "databases", + "currentUsage": 3, + "limit": 1, + "status": "over_limit", + "excess": 2, + "resolutionHint": "Delete or migrate 2 databases." + } + }, + "backupPolicy": { + "description": "backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup policy ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Backup policy name.", + "example": "Hourly backups" + }, + "$createdAt": { + "type": "string", + "description": "Policy creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Policy update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this policy should backup a single resource.", + "example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this policy should backup a single resource.", + "example": "database", + "nullable": true + }, + "retention": { + "type": "integer", + "description": "How many days to keep the backup before it will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "schedule": { + "type": "string", + "description": "Policy backup schedule in CRON format.", + "example": "0 * * * *" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup).", + "example": "full" + }, + "enabled": { + "type": "boolean", + "description": "Is this policy enabled.", + "example": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "services", + "resources", + "retention", + "schedule", + "type", + "enabled" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "Hourly backups", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "resourceId": "DB1", + "resourceType": "database", + "retention": 7, + "schedule": "0 * * * *", + "type": "full", + "enabled": true + } + }, + "dedicatedDatabasePooler": { + "description": "PoolerConfig", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether connection pooling is enabled.", + "example": true + }, + "mode": { + "type": "string", + "description": "Connection pool mode. Possible values: transaction (releases connections back to pool after each transaction), session (holds connections for the entire client session).", + "example": "transaction" + }, + "maxConnections": { + "type": "integer", + "description": "Client-connection ceiling the pooler accepts. Enforced on MySQL and MariaDB; on PostgreSQL the pooler has no client cap, so this reports the database's advertised networkMaxConnections and cannot be set here.", + "format": "int32", + "example": 200 + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "format": "int32", + "example": 25 + }, + "port": { + "type": "integer", + "description": "Pooler listening port.", + "format": "int32", + "example": 6432 + }, + "readWriteSplitting": { + "type": "boolean", + "description": "Whether SELECTs are routed to HA replicas while writes and locked reads stay on the primary. Active only when HA is enabled.", + "example": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Effective CPU request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (5% of DB CPU, floor 100m) unless overridden.", + "example": "100m" + }, + "poolerCpuLimit": { + "type": "string", + "description": "Effective CPU limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (10% of DB CPU, floor 200m) unless overridden.", + "example": "200m" + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Effective memory request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (7.5% of DB memory, floor 64Mi) unless overridden.", + "example": "64Mi" + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Effective memory limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (15% of DB memory, floor 128Mi) unless overridden.", + "example": "128Mi" + } + }, + "required": [ + "enabled", + "mode", + "maxConnections", + "defaultPoolSize", + "port", + "readWriteSplitting", + "poolerCpuRequest", + "poolerCpuLimit", + "poolerMemoryRequest", + "poolerMemoryLimit" + ], + "example": { + "enabled": true, + "mode": "transaction", + "maxConnections": 200, + "defaultPoolSize": 25, + "port": 6432, + "readWriteSplitting": true, + "poolerCpuRequest": "100m", + "poolerCpuLimit": "200m", + "poolerMemoryRequest": "64Mi", + "poolerMemoryLimit": "128Mi" + } + }, + "postgresExtension": { + "description": "Postgres extension", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Extension key used with CREATE EXTENSION.", + "example": "vector" + }, + "name": { + "type": "string", + "description": "Human-readable extension name.", + "example": "pgvector" + }, + "description": { + "type": "string", + "description": "Short description of what the extension provides.", + "example": "Vector data type and similarity search for embeddings." + }, + "category": { + "type": "string", + "description": "Category the extension belongs to.", + "example": "search" + } + }, + "required": [ + "key", + "name", + "description", + "category" + ], + "example": { + "key": "vector", + "name": "pgvector", + "description": "Vector data type and similarity search for embeddings.", + "category": "search" + } + }, + "program": { + "description": "Program", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Program ID", + "example": "" + }, + "title": { + "type": "string", + "description": "Program title", + "example": "" + }, + "description": { + "type": "string", + "description": "Program description", + "example": "" + }, + "tag": { + "type": "string", + "description": "Program tag for highlighting on console" + }, + "icon": { + "type": "string", + "description": "Program icon for highlighting on console" + }, + "url": { + "type": "string", + "description": "URL for more information on this program", + "example": "" + }, + "active": { + "type": "boolean", + "description": "Whether this program is active", + "example": false + }, + "external": { + "type": "boolean", + "description": "Whether this program is external", + "example": false + }, + "billingPlanId": { + "type": "string", + "description": "Billing plan ID that this is program is associated with.", + "example": "" + } + }, + "required": [ + "$id", + "title", + "description", + "tag", + "icon", + "url", + "active", + "external", + "billingPlanId" + ], + "example": { + "$id": "", + "title": "", + "description": "", + "tag": null, + "icon": null, + "url": "", + "active": false, + "external": false, + "billingPlanId": "" + } + }, + "consoleRegion": { + "description": "Region", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Region ID", + "example": "eu-fr" + }, + "name": { + "type": "string", + "description": "Region name", + "example": "EU (Frankfurt)" + }, + "available": { + "type": "boolean", + "description": "Does the organization have access to this region. Null when access has not been resolved.", + "example": false, + "nullable": true + }, + "disabled": { + "type": "boolean", + "description": "Does the backend support this region.", + "example": false + }, + "default": { + "type": "boolean", + "description": "Is this the region default.", + "example": true + }, + "flag": { + "type": "string", + "description": "Region flag code.", + "example": "fr" + } + }, + "required": [ + "$id", + "name", + "disabled", + "default", + "flag" + ], + "example": { + "$id": "eu-fr", + "name": "EU (Frankfurt)", + "available": false, + "disabled": false, + "default": true, + "flag": "fr" + } + }, + "backupRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Restoration update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "archiveId": { + "type": "string", + "description": "Backup archive ID.", + "example": "did8jx6ws45jana098ab7" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID.", + "example": "did8jx6ws45jana098ab7" + }, + "status": { + "type": "string", + "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", + "example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The restoration start time. Null until the restoration starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Restoration options as a key-value object.", + "example": { + "databases": { + "database": [ + { + "oldId": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "archiveId", + "policyId", + "status", + "migrationId", + "services", + "resources", + "options" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "archiveId": "did8jx6ws45jana098ab7", + "policyId": "did8jx6ws45jana098ab7", + "status": "completed", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "migrationId": "did8jx6ws45jana098ab7", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "options": { + "databases": { + "database": [ + { + "oldId": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } + } + }, + "dedicatedDatabaseRestorationList": { + "description": "Dedicated database restorations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "format": "int32", + "example": 5 + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + }, + "example": [] + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "review": { + "description": "Review", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of user", + "example": "" + }, + "image": { + "type": "string", + "description": "Reviewer image", + "example": "" + }, + "description": { + "type": "string", + "description": "Reviewer description", + "example": "" + }, + "review": { + "type": "string", + "description": "Review", + "example": "" + } + }, + "required": [ + "name", + "image", + "description", + "review" + ], + "example": { + "name": "", + "image": "", + "description": "", + "review": "" + } + }, + "roles": { + "description": "Roles", + "type": "object", + "properties": { + "scopes": { + "type": "array", + "description": "Array of scopes accessible to current user.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "roles": { + "type": "array", + "description": "Array of roles assigned to current user.", + "items": { + "type": "string" + }, + "example": [ + "developer" + ] + } + }, + "required": [ + "scopes", + "roles" + ], + "example": { + "scopes": "users.read", + "roles": "developer" + } + }, + "dedicatedDatabaseSpecification": { + "description": "Specification", + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Specification slug. Use this value when creating a dedicated database.", + "example": "s-2vcpu-2gb" + }, + "name": { + "type": "string", + "description": "Human readable specification name.", + "example": "Standard" + }, + "price": { + "type": "number", + "description": "Monthly price of the specification in USD.", + "format": "double", + "example": 20 + }, + "storageOverageRate": { + "type": "number", + "description": "Price per GB of storage above the included amount, per month, in USD.", + "format": "double", + "example": 0.125 + }, + "bandwidthOverageRate": { + "type": "number", + "description": "Price per GB of bandwidth above the included amount, per month, in USD.", + "format": "double", + "example": 0.08 + }, + "replicaRate": { + "type": "number", + "description": "High availability replica price as a fraction of the specification price.", + "format": "double", + "example": 1 + }, + "pitrRate": { + "type": "number", + "description": "Point-in-time recovery price as a fraction of the specification price.", + "format": "double", + "example": 0.2 + }, + "cpu": { + "type": "integer", + "description": "Allocated CPU in millicores.", + "format": "int32", + "example": 2000 + }, + "memory": { + "type": "integer", + "description": "Allocated memory in MB.", + "format": "int32", + "example": 2048 + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of concurrent connections.", + "format": "int32", + "example": 200 + }, + "includedStorage": { + "type": "integer", + "description": "Included storage in GB before overage charges apply.", + "format": "int32", + "example": 25 + }, + "includedBandwidth": { + "type": "integer", + "description": "Included bandwidth in GB before overage charges apply.", + "format": "int32", + "example": 200 + }, + "enabled": { + "type": "boolean", + "description": "Whether the specification is available on the current plan.", + "example": true + } + }, + "required": [ + "slug", + "name", + "price", + "storageOverageRate", + "bandwidthOverageRate", + "replicaRate", + "pitrRate", + "cpu", + "memory", + "maxConnections", + "includedStorage", + "includedBandwidth", + "enabled" + ], + "example": { + "slug": "s-2vcpu-2gb", + "name": "Standard", + "price": 20, + "storageOverageRate": 0.125, + "bandwidthOverageRate": 0.08, + "replicaRate": 1, + "pitrRate": 0.2, + "cpu": 2000, + "memory": 2048, + "maxConnections": 200, + "includedStorage": 25, + "includedBandwidth": 200, + "enabled": true + } + }, + "dedicatedDatabaseSpecificationList": { + "description": "SpecificationList", + "type": "object", + "properties": { + "specifications": { + "type": "array", + "description": "List of dedicated database specifications.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecification" + }, + "example": [] + }, + "total": { + "type": "integer", + "description": "Total number of specifications.", + "format": "int32", + "example": 9 + } + }, + "required": [ + "specifications", + "total" + ], + "example": { + "specifications": [], + "total": 9 + } + }, + "databaseStatusConnections": { + "description": "Connections", + "type": "object", + "properties": { + "current": { + "type": "integer", + "description": "Current number of active connections.", + "format": "int32", + "example": 12 + }, + "max": { + "type": "integer", + "description": "The engine's own max_connections. On a pooled database this is the backend limit the pooler multiplexes onto, not the ceiling a client pool may reach \u2014 that is networkMaxConnections on the database resource.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "current", + "max" + ], + "example": { + "current": 12, + "max": 100 + } + }, + "databaseStatusReplica": { + "description": "Replica", + "type": "object", + "properties": { + "index": { + "type": "integer", + "description": "Member index within the database. Read `role` for which member accepts writes: a failover moves the primary without renumbering the indexes.", + "format": "int32", + "example": 0 + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology, so no member can be named the write target).", + "example": "primary" + }, + "healthy": { + "type": "boolean", + "description": "Whether the replica is healthy.", + "example": true + }, + "replicating": { + "type": "boolean", + "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not healthy, or whose probe did not answer, has none yet. `healthy` is a reachability probe of the member itself and says nothing about replication, so a healthy member may still not be replicating.", + "example": true, + "nullable": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds (null for primary). Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", + "format": "double", + "example": 0.2, + "nullable": true + } + }, + "required": [ + "index", + "role", + "healthy" + ], + "example": { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + }, + "databaseStatusVolume": { + "description": "Volume", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Mount path of the volume.", + "example": "\/var\/lib\/postgresql\/data" + }, + "usedPercent": { + "type": "string", + "description": "Percentage of storage used.", + "example": "45%" + }, + "available": { + "type": "string", + "description": "Available storage space.", + "example": "55GB" + }, + "mounted": { + "type": "boolean", + "description": "Whether the volume is mounted.", + "example": true + } + }, + "required": [ + "path", + "usedPercent", + "available", + "mounted" + ], + "example": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + }, + "usageBillingPlan": { + "description": "usageBillingPlan", + "type": "object", + "properties": { + "bandwidth": { + "type": "object", + "description": "Bandwidth additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "executions": { + "type": "object", + "description": "Executions additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "member": { + "type": "object", + "description": "Member additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "realtime": { + "type": "object", + "description": "Realtime additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "realtimeMessages": { + "type": "object", + "description": "Realtime messages additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "realtimeBandwidth": { + "type": "object", + "description": "Realtime bandwidth additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "storage": { + "type": "object", + "description": "Storage additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "users": { + "type": "object", + "description": "User additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "GBHours": { + "type": "object", + "description": "GBHour additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "imageTransformations": { + "type": "object", + "description": "Image transformation additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "credits": { + "type": "object", + "description": "Credits additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + } + }, + "example": { + "bandwidth": null, + "executions": null, + "member": null, + "realtime": null, + "realtimeMessages": null, + "realtimeBandwidth": null, + "storage": null, + "users": null, + "GBHours": null, + "imageTransformations": null, + "credits": null + } + }, + "usageOrganization": { + "description": "Organization", + "type": "object", + "properties": { + "bandwidth": { + "type": "array", + "description": "Aggregated stats for number of requests.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "users": { + "type": "array", + "description": "Aggregated stats for consumed bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated stats for function executions.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "databasesReads": { + "type": "array", + "description": "Aggregated stats for database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "imageTransformations": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "format": "int32", + "example": 0 + }, + "screenshotsGenerated": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "format": "int32", + "example": 0 + }, + "usersTotal": { + "type": "integer", + "description": "Aggregated stats for total users.", + "format": "int32", + "example": 0 + }, + "executionsTotal": { + "type": "integer", + "description": "Aggregated stats for total executions.", + "format": "int32", + "example": 0 + }, + "executionsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function executions in mb seconds.", + "format": "int32", + "example": 0 + }, + "buildsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "format": "int32", + "example": 0 + }, + "filesStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total file storage.", + "format": "int32", + "example": 0 + }, + "buildsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total builds storage.", + "format": "int32", + "example": 0 + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total deployments storage.", + "format": "int32", + "example": 0 + }, + "databasesStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total databases storage.", + "format": "int32", + "example": 0 + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "format": "int32", + "example": 0 + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "format": "int32", + "example": 0 + }, + "backupsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total backups storage.", + "format": "int32", + "example": 0 + }, + "avatarsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total custom user photos storage.", + "format": "int32", + "example": 0 + }, + "storageTotal": { + "type": "integer", + "description": "Aggregated stats for total storage.", + "format": "int32", + "example": 0 + }, + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for total auth phone.", + "format": "int32", + "example": 0 + }, + "authPhoneEstimate": { + "type": "integer", + "description": "Aggregated stats for total auth phone estimation.", + "format": "int32", + "example": 0 + }, + "projects": { + "type": "array", + "description": "Aggregated stats for each projects.", + "items": { + "$ref": "#\/components\/schemas\/usageOrganizationProject" + }, + "example": [] + }, + "realtimeConnections": { + "type": "array", + "description": "Aggregated stats for realtime connections.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "realtimeConnectionsTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime connections.", + "format": "int32", + "example": 0 + }, + "realtimeMessages": { + "type": "array", + "description": "Aggregated stats for realtime messages.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "realtimeMessagesTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime messages.", + "format": "int32", + "example": 0 + }, + "realtimeBandwidth": { + "type": "array", + "description": "Aggregated stats for realtime bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "example": [] + }, + "realtimeBandwidthTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime bandwidth.", + "format": "int32", + "example": 0 + } + }, + "required": [ + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "usersTotal", + "executionsTotal", + "executionsMBSecondsTotal", + "buildsMBSecondsTotal", + "filesStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", + "databasesStorageTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "backupsStorageTotal", + "avatarsStorageTotal", + "storageTotal", + "authPhoneTotal", + "authPhoneEstimate", + "projects", + "realtimeConnections", + "realtimeConnectionsTotal", + "realtimeMessages", + "realtimeMessagesTotal", + "realtimeBandwidth", + "realtimeBandwidthTotal" + ], + "example": { + "bandwidth": [], + "users": [], + "executions": [], + "databasesReads": [], + "databasesWrites": [], + "imageTransformations": [], + "imageTransformationsTotal": 0, + "screenshotsGenerated": [], + "screenshotsGeneratedTotal": 0, + "usersTotal": 0, + "executionsTotal": 0, + "executionsMBSecondsTotal": 0, + "buildsMBSecondsTotal": 0, + "filesStorageTotal": 0, + "buildsStorageTotal": 0, + "deploymentsStorageTotal": 0, + "databasesStorageTotal": 0, + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "backupsStorageTotal": 0, + "avatarsStorageTotal": 0, + "storageTotal": 0, + "authPhoneTotal": 0, + "authPhoneEstimate": 0, + "projects": [], + "realtimeConnections": [], + "realtimeConnectionsTotal": 0, + "realtimeMessages": [], + "realtimeMessagesTotal": 0, + "realtimeBandwidth": [], + "realtimeBandwidthTotal": 0 + } + }, + "usageOrganizationProject": { + "description": "OrganizationProject", + "type": "object", + "properties": { + "projectId": { + "type": "string", + "description": "projectId", + "example": "5e5ea5c16897e" + }, + "bandwidth": { + "type": "integer", + "description": "Aggregated stats for number of requests.", + "format": "int32", + "example": 0 + }, + "users": { + "type": "integer", + "description": "Aggregated stats for consumed bandwidth.", + "format": "int32", + "example": 0 + }, + "executions": { + "type": "integer", + "description": "Aggregated stats for function executions.", + "format": "int32", + "example": 0 + }, + "databasesReads": { + "type": "integer", + "description": "Aggregated stats for database reads.", + "format": "int32", + "example": 0 + }, + "databasesWrites": { + "type": "integer", + "description": "Aggregated stats for database writes.", + "format": "int32", + "example": 0 + }, + "executionsMBSeconds": { + "type": "integer", + "description": "Aggregated stats for function executions in mb seconds.", + "format": "int32", + "example": 0 + }, + "buildsMBSeconds": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "format": "int32", + "example": 0 + }, + "storage": { + "type": "integer", + "description": "Aggregated stats for number of documents.", + "format": "int32", + "example": 0 + }, + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for phone authentication.", + "format": "int32", + "example": 0 + }, + "authPhoneEstimate": { + "type": "number", + "description": "Aggregated stats for phone authentication estimated cost.", + "format": "double", + "example": 0 + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "format": "int32", + "example": 0 + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "format": "int32", + "example": 0 + }, + "imageTransformations": { + "type": "integer", + "description": "Aggregated stats for file transformations.", + "format": "int32", + "example": 0 + }, + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "format": "int32", + "example": 0 + }, + "screenshotsGenerated": { + "type": "integer", + "description": "Aggregated stats for file transformations.", + "format": "int32", + "example": 0 + }, + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "format": "int32", + "example": 0 + }, + "realtimeConnections": { + "type": "integer", + "description": "Aggregated stats for realtime connections.", + "format": "int32", + "example": 0 + }, + "realtimeMessages": { + "type": "integer", + "description": "Aggregated stats for realtime messages.", + "format": "int32", + "example": 0 + }, + "realtimeBandwidth": { + "type": "integer", + "description": "Aggregated stats for realtime bandwidth.", + "format": "int32", + "example": 0 + } + }, + "required": [ + "projectId", + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "executionsMBSeconds", + "buildsMBSeconds", + "storage", + "authPhoneTotal", + "authPhoneEstimate", + "databasesReadsTotal", + "databasesWritesTotal", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "realtimeConnections", + "realtimeMessages", + "realtimeBandwidth" + ], + "example": { + "projectId": "5e5ea5c16897e", + "bandwidth": 0, + "users": 0, + "executions": [], + "databasesReads": 0, + "databasesWrites": 0, + "executionsMBSeconds": 0, + "buildsMBSeconds": 0, + "storage": [], + "authPhoneTotal": [], + "authPhoneEstimate": [], + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "imageTransformations": 0, + "imageTransformationsTotal": 0, + "screenshotsGenerated": 0, + "screenshotsGeneratedTotal": 0, + "realtimeConnections": 0, + "realtimeMessages": 0, + "realtimeBandwidth": 0 + } + }, + "usageResources": { + "description": "Resource", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Invoice name", + "example": "" + }, + "value": { + "type": "integer", + "description": "Invoice value", + "format": "int32", + "example": 0 + }, + "amount": { + "type": "number", + "description": "Invoice amount", + "format": "double", + "example": 500 + }, + "rate": { + "type": "number", + "description": "Invoice rate", + "format": "double", + "example": 12.5 + }, + "desc": { + "type": "string", + "description": "Invoice description", + "example": "Your monthly recurring Pro plan." + }, + "resourceId": { + "type": "string", + "description": "Resource ID", + "example": "" + }, + "type": { + "type": "string", + "description": "Dedicated database engine type for per-database line items (e.g. postgresql). Empty for other resources.", + "example": "postgresql" + }, + "specification": { + "type": "string", + "description": "Dedicated database specification slug for per-database line items (e.g. s-2vcpu-2gb). Empty for other resources.", + "example": "s-2vcpu-2gb" + } + }, + "required": [ + "name", + "value", + "amount", + "rate", + "desc", + "resourceId", + "type", + "specification" + ], + "example": { + "name": "", + "value": 0, + "amount": 500, + "rate": 12.5, + "desc": "Your monthly recurring Pro plan.", + "resourceId": "", + "type": "postgresql", + "specification": "s-2vcpu-2gb" + } + }, + "app": { + "description": "App", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Application name.", + "example": "My Application" + }, + "description": { + "type": "string", + "description": "Application description shown to users during OAuth2 consent.", + "example": "Connect your workspace to My Application." + }, + "clientUri": { + "type": "string", + "description": "Application homepage URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com" + }, + "logoUri": { + "type": "string", + "description": "Application logo URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/logo.png" + }, + "privacyPolicyUrl": { + "type": "string", + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/privacy" + }, + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/terms" + }, + "contacts": { + "type": "array", + "description": "Application support or security contact emails.", + "items": { + "type": "string" + }, + "example": [ + "support@example.com" + ] + }, + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "example": "Automate your workspace." + }, + "tags": { + "type": "array", + "description": "Application tags shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "productivity", + "automation" + ] + }, + "labels": { + "type": "array", + "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", + "items": { + "type": "string" + }, + "example": [ + "featured" + ] + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/screenshot.png" + ] + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/support" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/data-deletion" + }, + "redirectUris": { + "type": "array", + "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/callback" + ] + }, + "postLogoutRedirectUris": { + "type": "array", + "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/logged-out" + ] + }, + "enabled": { + "type": "boolean", + "description": "Whether the app is enabled or not.", + "example": true + }, + "type": { + "type": "string", + "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", + "example": "confidential" + }, + "deviceFlow": { + "type": "boolean", + "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", + "example": false + }, + "teamId": { + "type": "string", + "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", + "example": "5e5ea5c16897e" + }, + "installationScopes": { + "type": "array", + "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "installationRedirectUrl": { + "type": "string", + "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", + "example": "https:\/\/example.com\/setup" + }, + "secrets": { + "type": "array", + "description": "List of application secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "clientUri", + "logoUri", + "privacyPolicyUrl", + "termsUrl", + "contacts", + "tagline", + "tags", + "labels", + "images", + "supportUrl", + "dataDeletionUrl", + "redirectUris", + "postLogoutRedirectUris", + "enabled", + "type", + "deviceFlow", + "teamId", + "userId", + "installationScopes", + "installationRedirectUrl", + "secrets" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Application", + "description": "Connect your workspace to My Application.", + "clientUri": "https:\/\/example.com", + "logoUri": "https:\/\/example.com\/logo.png", + "privacyPolicyUrl": "https:\/\/example.com\/privacy", + "termsUrl": "https:\/\/example.com\/terms", + "contacts": [ + "support@example.com" + ], + "tagline": "Automate your workspace.", + "tags": [ + "productivity", + "automation" + ], + "labels": [ + "featured" + ], + "images": [ + "https:\/\/example.com\/screenshot.png" + ], + "supportUrl": "https:\/\/example.com\/support", + "dataDeletionUrl": "https:\/\/example.com\/data-deletion", + "redirectUris": [ + "https:\/\/example.com\/callback" + ], + "postLogoutRedirectUris": [ + "https:\/\/example.com\/logged-out" + ], + "enabled": true, + "type": "confidential", + "deviceFlow": false, + "teamId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "installationScopes": [ + "organization:organization.read" + ], + "installationRedirectUrl": "https:\/\/example.com\/setup", + "secrets": [] + } + }, + "appSecret": { + "description": "AppSecret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "example": "" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appSecretPlaintext": { + "description": "AppSecretPlaintext", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appScope": { + "description": "AppScope", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Scope value as requested by apps.", + "example": "organization:organization.read" + }, + "description": { + "type": "string", + "description": "Human-readable description of what the scope grants.", + "example": "Access to read the organization" + }, + "type": { + "type": "string", + "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", + "example": "organization" + }, + "category": { + "type": "string", + "description": "Scope category, used to group scopes on consent and installation screens.", + "example": "Organization" + }, + "deprecated": { + "type": "boolean", + "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", + "example": false + } + }, + "required": [ + "value", + "description", + "type", + "category", + "deprecated" + ], + "example": { + "value": "organization:organization.read", + "description": "Access to read the organization", + "type": "organization", + "category": "Organization", + "deprecated": false + } + }, + "appInstallation": { + "description": "AppInstallation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Installation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Installation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Installation update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the installed application.", + "example": "5e5ea5c16897e" + }, + "teamId": { + "type": "string", + "description": "ID of the team the application is installed on.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "authorizationDetails": { + "type": "array", + "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ] + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the installation.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the installation.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "teamId", + "scopes", + "authorizationDetails", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "teamId": "5e5ea5c16897e", + "scopes": [ + "organization:organization.read" + ], + "authorizationDetails": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ], + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appKey": { + "description": "AppKey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App key creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App key update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this app key belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "App key secret.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the app key secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the app key.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the app key.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2Authorize": { + "description": "OAuth2 Authorize", + "type": "object", + "properties": { + "grantId": { + "type": "string", + "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", + "example": "5e5ea5c16897e" + }, + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "grantId", + "redirectUrl" + ], + "example": { + "grantId": "5e5ea5c16897e", + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Approve": { + "description": "OAuth2 Approve", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Reject": { + "description": "OAuth2 Reject", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", + "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "oauth2Grant": { + "description": "OAuth2 Grant", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Grant ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Grant creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Grant update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the grant belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the OAuth2 client (app) the grant was requested for.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Requested OAuth2 scopes the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", + "example": "login" + }, + "redirectUri": { + "type": "string", + "description": "Redirect URI the user will be sent to after the flow completes.", + "example": "https:\/\/example.com\/callback" + }, + "authTime": { + "type": "integer", + "description": "Unix timestamp of when the user last authenticated.", + "format": "int32", + "example": 1592981250 + }, + "expire": { + "type": "string", + "description": "Grant expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "scopes", + "resources", + "authorizationDetails", + "prompt", + "redirectUri", + "authTime", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "prompt": "login", + "redirectUri": "https:\/\/example.com\/callback", + "authTime": 1592981250, + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2DeviceAuthorization": { + "description": "OAuth2 Device Authorization", + "type": "object", + "properties": { + "device_code": { + "type": "string", + "description": "Device verification code used by the client to poll the token endpoint.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "user_code": { + "type": "string", + "description": "Short code the end user enters on the verification page.", + "example": "ABCD-EFGH" + }, + "verification_uri": { + "type": "string", + "description": "URL where the end user enters the user code.", + "example": "https:\/\/appwrite.io\/oauth2\/device" + }, + "verification_uri_complete": { + "type": "string", + "description": "Verification URL with the user code prefilled as a query parameter.", + "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the device code and user code in seconds.", + "format": "int32", + "example": 900 + }, + "interval": { + "type": "integer", + "description": "Minimum polling interval for the token endpoint in seconds.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "device_code", + "user_code", + "verification_uri", + "verification_uri_complete", + "expires_in", + "interval" + ], + "example": { + "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "user_code": "ABCD-EFGH", + "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", + "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "expires_in": 900, + "interval": 5 + } + }, + "oauth2PAR": { + "description": "OAuth2 PAR", + "type": "object", + "properties": { + "request_uri": { + "type": "string", + "description": "Authorization request handle to pass to the authorize endpoint.", + "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the authorization request handle in seconds.", + "format": "int32", + "example": 600 + } + }, + "required": [ + "request_uri", + "expires_in" + ], + "example": { + "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", + "expires_in": 600 + } + }, + "oauth2Token": { + "description": "OAuth2 Token", + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "OAuth2 access token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer" + }, + "expires_in": { + "type": "integer", + "description": "Access token lifetime in seconds.", + "format": "int32", + "example": 3600 + }, + "refresh_token": { + "type": "string", + "description": "OAuth2 refresh token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the access token.", + "example": "openid email profile" + }, + "authorization_details": { + "type": "string", + "description": "Granted RFC 9396 authorization details as a JSON string.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "nullable": true + }, + "id_token": { + "type": "string", + "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "nullable": true + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "refresh_token", + "scope" + ], + "example": { + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "token_type": "Bearer", + "expires_in": 3600, + "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", + "scope": "openid email profile", + "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + } + }, + "oauth2Consent": { + "description": "OAuth2 Consent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Consent ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Consent creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Consent update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the consent belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2ConsentToken": { + "description": "OAuth2 Consent Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token family ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "consentId": { + "type": "string", + "description": "ID of the consent the token family was issued under.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of the user the token family belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Expiration time of the current access token of this family in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "consentId", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "consentId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "wafRuleBypass": { + "description": "WafRuleBypass", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleDeny": { + "description": "WafRuleDeny", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleChallenge": { + "description": "WafRuleChallenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "challengeType": { + "type": "string", + "description": "Challenge type enforced when the rule matches.", + "example": "compute" + }, + "difficulty": { + "type": "integer", + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest) enforced when the rule matches.", + "format": "int32", + "example": 3 + }, + "ttl": { + "type": "integer", + "description": "Seconds a visitor stays cleared after passing the challenge before being challenged again.", + "format": "int32", + "example": 1800 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "challengeType", + "difficulty", + "ttl" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "challengeType": "compute", + "difficulty": 3, + "ttl": 1800 + } + }, + "wafRuleRateLimit": { + "description": "WafRuleRateLimit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed for the given interval.", + "format": "int32", + "example": 1000 + }, + "interval": { + "type": "integer", + "description": "Interval in seconds for the rate limit window.", + "format": "int32", + "example": 60 + }, + "key": { + "type": "string", + "description": "Rate limit key: `ip` limits per client IP, `userId` limits per authenticated user.", + "example": "userId" + }, + "strategy": { + "type": "string", + "description": "Rate limit strategy: `fixedWindow`, `slidingWindow`, or `tokenBucket`.", + "example": "slidingWindow" + }, + "maxBucketSize": { + "type": "integer", + "description": "Maximum burst capacity in tokens, applied by the `tokenBucket` strategy. The sustained refill rate is `limit \/ interval`. Defaults to `limit`.", + "format": "int32", + "example": 200 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "limit", + "interval", + "key", + "strategy", + "maxBucketSize" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "limit": 1000, + "interval": 60, + "key": "userId", + "strategy": "slidingWindow", + "maxBucketSize": 200 + } + }, + "wafRuleRedirect": { + "description": "WafRuleRedirect", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "location": { + "type": "string", + "description": "Target location for the redirect.", + "example": "\/maintenance" + }, + "statusCode": { + "type": "integer", + "description": "HTTP status code used for the redirect.", + "format": "int32", + "example": 301 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "location", + "statusCode" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "location": "\/maintenance", + "statusCode": 301 + } + }, + "wafRuleList": { + "description": "WAF rule list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rules that matched your query.", + "format": "int32", + "example": 5 + }, + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/wafRuleBypass" + }, + { + "$ref": "#\/components\/schemas\/wafRuleDeny" + }, + { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + ], + "discriminator": { + "propertyName": "action", + "mapping": { + "bypass": "#\/components\/schemas\/wafRuleBypass", + "deny": "#\/components\/schemas\/wafRuleDeny", + "challenge": "#\/components\/schemas\/wafRuleChallenge", + "rateLimit": "#\/components\/schemas\/wafRuleRateLimit", + "redirect": "#\/components\/schemas\/wafRuleRedirect" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "oauth2Project": { + "description": "OAuth2 Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "region": { + "type": "string", + "description": "Region ID the project is deployed in.", + "example": "fra" + }, + "endpoint": { + "type": "string", + "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", + "example": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "required": [ + "$id", + "region", + "endpoint" + ], + "example": { + "$id": "5e5ea5c16897e", + "region": "fra", + "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "oauth2Organization": { + "description": "OAuth2 Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Organization ID.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "$id" + ], + "example": { + "$id": "5e5ea5c16897e" + } + }, + "oauth2ProjectList": { + "description": "OAuth2 accessible projects list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "oauth2OrganizationList": { + "description": "OAuth2 accessible organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of organizations that matched your query.", + "format": "int32", + "example": 5 + }, + "organizations": { + "type": "array", + "description": "List of organizations.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Organization" + }, + "example": [] + } + }, + "required": [ + "total", + "organizations" + ], + "example": { + "total": 5, + "organizations": "" + } + }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "format": "int32", + "example": 5 + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "example": [] + } + }, + "required": [ + "total", + "consents" + ], + "example": { + "total": 5, + "consents": "" + } + }, + "oauth2ConsentTokenList": { + "description": "OAuth2 consent tokens list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "activityEventList": { + "description": "Activity event list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of events that matched your query.", + "format": "int32", + "example": 5 + }, + "events": { + "type": "array", + "description": "List of events.", + "items": { + "$ref": "#\/components\/schemas\/activityEvent" + }, + "example": [] + } + }, + "required": [ + "total", + "events" + ], + "example": { + "total": 5, + "events": "" + } + }, + "addonList": { + "description": "Addons list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of addons that matched your query.", + "format": "int32", + "example": 5 + }, + "addons": { + "type": "array", + "description": "List of addons.", + "items": { + "$ref": "#\/components\/schemas\/addon" + }, + "example": [] + } + }, + "required": [ + "total", + "addons" + ], + "example": { + "total": 5, + "addons": "" + } + }, + "analyticsPropertyList": { + "description": "Analytics properties list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of properties that matched your query.", + "format": "int32", + "example": 5 + }, + "properties": { + "type": "array", + "description": "List of properties.", + "items": { + "$ref": "#\/components\/schemas\/analyticsProperty" + }, + "example": [] + } + }, + "required": [ + "total", + "properties" + ], + "example": { + "total": 5, + "properties": "" + } + }, + "aggregationTeamList": { + "description": "Aggregation team list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of aggregations that matched your query.", + "format": "int32", + "example": 5 + }, + "aggregations": { + "type": "array", + "description": "List of aggregations.", + "items": { + "$ref": "#\/components\/schemas\/aggregationTeam" + }, + "example": [] + } + }, + "required": [ + "total", + "aggregations" + ], + "example": { + "total": 5, + "aggregations": "" + } + }, + "backupArchiveList": { + "description": "Backup archive list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of archives that matched your query.", + "format": "int32", + "example": 5 + }, + "archives": { + "type": "array", + "description": "List of archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "example": [] + } + }, + "required": [ + "total", + "archives" + ], + "example": { + "total": 5, + "archives": "" + } + }, + "backupPolicyList": { + "description": "Backup policy list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of policies that matched your query.", + "format": "int32", + "example": 5 + }, + "policies": { + "type": "array", + "description": "List of policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "example": [] + } + }, + "required": [ + "total", + "policies" + ], + "example": { + "total": 5, + "policies": "" + } + }, + "backupRestorationList": { + "description": "Backup restoration list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "format": "int32", + "example": 5 + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/backupRestoration" + }, + "example": [] + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "billingAddressList": { + "description": "Billing address list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of billingAddresses that matched your query.", + "format": "int32", + "example": 5 + }, + "billingAddresses": { + "type": "array", + "description": "List of billingAddresses.", + "items": { + "$ref": "#\/components\/schemas\/billingAddress" + }, + "example": [] + } + }, + "required": [ + "total", + "billingAddresses" + ], + "example": { + "total": 5, + "billingAddresses": "" + } + }, + "invoiceList": { + "description": "Billing invoices list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of invoices that matched your query.", + "format": "int32", + "example": 5 + }, + "invoices": { + "type": "array", + "description": "List of invoices.", + "items": { + "$ref": "#\/components\/schemas\/invoice" + }, + "example": [] + } + }, + "required": [ + "total", + "invoices" + ], + "example": { + "total": 5, + "invoices": "" + } + }, + "billingPlanList": { + "description": "Billing plan list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of plans that matched your query.", + "format": "int32", + "example": 5 + }, + "plans": { + "type": "array", + "description": "List of plans.", + "items": { + "$ref": "#\/components\/schemas\/billingPlan" + }, + "example": [] + } + }, + "required": [ + "total", + "plans" + ], + "example": { + "total": 5, + "plans": "" + } + }, + "managerBlockList": { + "description": "Manager blocks list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of blocks that matched your query.", + "format": "int32", + "example": 5 + }, + "blocks": { + "type": "array", + "description": "List of blocks.", + "items": { + "$ref": "#\/components\/schemas\/managerBlock" + }, + "example": [] + } + }, + "required": [ + "total", + "blocks" + ], + "example": { + "total": 5, + "blocks": "" + } + }, + "databaseMigrationList": { + "description": "Database Migrations List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of migrations that matched your query.", + "format": "int32", + "example": 5 + }, + "migrations": { + "type": "array", + "description": "List of migrations.", + "items": { + "$ref": "#\/components\/schemas\/databaseMigration" + }, + "example": [] + } + }, + "required": [ + "total", + "migrations" + ], + "example": { + "total": 5, + "migrations": "" + } + }, + "dedicatedDatabaseList": { + "description": "Dedicated databases list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "format": "int32", + "example": 5 + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + }, + "example": [] + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, + "dnsRecordsList": { + "description": "DNS records list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of dnsRecords that matched your query.", + "format": "int32", + "example": 5 + }, + "dnsRecords": { + "type": "array", + "description": "List of dnsRecords.", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "example": [] + } + }, + "required": [ + "total", + "dnsRecords" + ], + "example": { + "total": 5, + "dnsRecords": "" + } + }, + "domainSuggestionsList": { + "description": "Domain suggestions list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of suggestions that matched your query.", + "format": "int32", + "example": 5 + }, + "suggestions": { + "type": "array", + "description": "List of suggestions.", + "items": { + "$ref": "#\/components\/schemas\/domainSuggestion" + }, + "example": [] + } + }, + "required": [ + "total", + "suggestions" + ], + "example": { + "total": 5, + "suggestions": "" + } + }, + "domainPricesList": { + "description": "Domain prices list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of prices that matched your query.", + "format": "int32", + "example": 5 + }, + "prices": { + "type": "array", + "description": "List of prices.", + "items": { + "$ref": "#\/components\/schemas\/domainPrice" + }, + "example": [] + } + }, + "required": [ + "total", + "prices" + ], + "example": { + "total": 5, + "prices": "" + } + }, + "domainsList": { + "description": "Domains list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of domains that matched your query.", + "format": "int32", + "example": 5 + }, + "domains": { + "type": "array", + "description": "List of domains.", + "items": { + "$ref": "#\/components\/schemas\/domain" + }, + "example": [] + } + }, + "required": [ + "total", + "domains" + ], + "example": { + "total": 5, + "domains": "" + } + }, + "organizationList": { + "description": "Organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "format": "int32", + "example": 5 + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/organization" + }, + "example": [] + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "paymentMethodList": { + "description": "Payment methods list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of paymentMethods that matched your query.", + "format": "int32", + "example": 5 + }, + "paymentMethods": { + "type": "array", + "description": "List of paymentMethods.", + "items": { + "$ref": "#\/components\/schemas\/paymentMethod" + }, + "example": [] + } + }, + "required": [ + "total", + "paymentMethods" + ], + "example": { + "total": 5, + "paymentMethods": "" + } + }, + "postgresExtensionList": { + "description": "Postgres extensions list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of extensions that matched your query.", + "format": "int32", + "example": 5 + }, + "extensions": { + "type": "array", + "description": "List of extensions.", + "items": { + "$ref": "#\/components\/schemas\/postgresExtension" + }, + "example": [] + } + }, + "required": [ + "total", + "extensions" + ], + "example": { + "total": 5, + "extensions": "" + } + }, + "consoleRegionList": { + "description": "Regions list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of regions that matched your query.", + "format": "int32", + "example": 5 + }, + "regions": { + "type": "array", + "description": "List of regions.", + "items": { + "$ref": "#\/components\/schemas\/consoleRegion" + }, + "example": [] + } + }, + "required": [ + "total", + "regions" + ], + "example": { + "total": 5, + "regions": "" + } + }, + "appsList": { + "description": "Apps list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of apps that matched your query.", + "format": "int32", + "example": 5 + }, + "apps": { + "type": "array", + "description": "List of apps.", + "items": { + "$ref": "#\/components\/schemas\/app" + }, + "example": [] + } + }, + "required": [ + "total", + "apps" + ], + "example": { + "total": 5, + "apps": "" + } + }, + "appSecretList": { + "description": "App secrets list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of secrets that matched your query.", + "format": "int32", + "example": 5 + }, + "secrets": { + "type": "array", + "description": "List of secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "total", + "secrets" + ], + "example": { + "total": 5, + "secrets": "" + } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "format": "int32", + "example": 5 + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "example": [] + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "appInstallationList": { + "description": "App installations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of installations that matched your query.", + "format": "int32", + "example": 5 + }, + "installations": { + "type": "array", + "description": "List of installations.", + "items": { + "$ref": "#\/components\/schemas\/appInstallation" + }, + "example": [] + } + }, + "required": [ + "total", + "installations" + ], + "example": { + "total": 5, + "installations": "" + } + }, + "appKeyList": { + "description": "App keys list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/appKey" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + } + }, + "securitySchemes": { + "Project": { + "type": "apiKey", + "name": "X-Appwrite-Project", + "description": "Your project ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "<YOUR_PROJECT_ID>" + } + }, + "Key": { + "type": "apiKey", + "name": "X-Appwrite-Key", + "description": "Your secret API key", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "<YOUR_API_KEY>" + } + }, + "Organization": { + "type": "apiKey", + "name": "X-Appwrite-Organization", + "description": "Your organization ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "<YOUR_ORGANIZATION_ID>" + } + }, + "JWT": { + "type": "apiKey", + "name": "X-Appwrite-JWT", + "description": "Your secret JSON Web Token", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "<YOUR_JWT>" + } + }, + "Bearer": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "Locale": { + "type": "apiKey", + "name": "X-Appwrite-Locale", + "description": "", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "en" + } + }, + "Mode": { + "type": "apiKey", + "name": "X-Appwrite-Mode", + "description": "", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ], + "demo": "" + } + }, + "Cookie": { + "type": "apiKey", + "name": "Cookie", + "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "Session": { + "type": "apiKey", + "name": "X-Appwrite-Session", + "description": "The user session to authenticate with", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "ImpersonateUserId": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Id", + "description": "Impersonate a user by ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "ImpersonateUserEmail": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Email", + "description": "Impersonate a user by email", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "ImpersonateUserPhone": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Phone", + "description": "Impersonate a user by phone", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + }, + "Platform": { + "type": "apiKey", + "name": "X-Appwrite-Platform", + "description": "The platform type (Appwrite or Imagine)", + "in": "header", + "x-appwrite": { + "platforms": [ + "console" + ] + } + } + } + }, + "externalDocs": { + "description": "Full API docs, specs and tutorials", + "url": "https:\/\/appwrite.io\/docs" + } +} \ No newline at end of file diff --git a/specs/2.4.x/open-api3-2.4.x-server.json b/specs/2.4.x/open-api3-2.4.x-server.json new file mode 100644 index 000000000..5fb5fa0c2 --- /dev/null +++ b/specs/2.4.x/open-api3-2.4.x-server.json @@ -0,0 +1,124409 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "2.4.0", + "title": "Appwrite", + "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https:\/\/appwrite.io\/docs](https:\/\/appwrite.io\/docs)", + "termsOfService": "https:\/\/appwrite.io\/policy\/terms", + "contact": { + "name": "Appwrite Team", + "url": "https:\/\/appwrite.io\/support", + "email": "team@appwrite.io" + }, + "license": { + "name": "BSD-3-Clause", + "url": "https:\/\/raw.githubusercontent.com\/appwrite\/appwrite\/master\/LICENSE" + } + }, + "servers": [ + { + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." + }, + { + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } + } + ], + "paths": { + "\/account": { + "get": { + "summary": "Get account", + "operationId": "accountGet", + "tags": [ + "account" + ], + "description": "Get the currently logged in user.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create account", + "operationId": "accountCreate", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register a new account in your project. After the user registration completes successfully, you can use the [\/account\/verfication](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createVerification) route to start verifying the user email address. To allow the new user to login to their new account, you need to create a new [account session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailSession).", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/consents": { + "get": { + "summary": "List consents", + "operationId": "accountListConsents", + "tags": [ + "account" + ], + "description": "Get a list of the OAuth2 consents the current user has given to third-party apps.", + "responses": { + "200": { + "description": "OAuth2 consents list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}": { + "get": { + "summary": "Get consent", + "operationId": "accountGetConsent", + "tags": [ + "account" + ], + "description": "Get an OAuth2 consent the current user has given to a third-party app by its unique ID.", + "responses": { + "200": { + "description": "OAuth2 Consent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Consent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent", + "operationId": "accountDeleteConsent", + "tags": [ + "account" + ], + "description": "Delete an OAuth2 consent by its unique ID. All token families issued under the consent are revoked, and the app must ask for consent again to regain access.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens": { + "get": { + "summary": "List consent tokens", + "operationId": "accountListConsentTokens", + "tags": [ + "account" + ], + "description": "Get a list of the token families issued under an OAuth2 consent. Each entry represents one authorized device or session; the token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 consent tokens list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/list-consent-tokens.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/consents\/{consentId}\/tokens\/{tokenId}": { + "get": { + "summary": "Get consent token", + "operationId": "accountGetConsentToken", + "tags": [ + "account" + ], + "description": "Get a token family issued under an OAuth2 consent by its unique ID. The token secrets themselves are never returned.", + "responses": { + "200": { + "description": "OAuth2 Consent Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/get-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete consent token", + "operationId": "accountDeleteConsentToken", + "tags": [ + "account" + ], + "description": "Delete a token family issued under an OAuth2 consent by its unique ID. The access and refresh tokens of the family stop working immediately; other token families and the consent itself are unaffected.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "consents", + "demo": "account\/delete-consent-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "consentId", + "description": "Consent unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<CONSENT_ID>" + }, + "in": "path" + }, + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/email": { + "patch": { + "summary": "Update email", + "operationId": "accountUpdateEmail", + "tags": [ + "account" + ], + "description": "Update currently logged in user account email address. After changing user address, the user confirmation status will get reset. A new confirmation email is not sent automatically however you can use the send confirmation email endpoint again to send the confirmation email. For security measures, user password is required to complete this request.\nThis endpoint can also be used to convert an anonymous account to a normal one, by passing an email address and a new password.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/identities": { + "get": { + "summary": "List identities", + "operationId": "accountListIdentities", + "tags": [ + "account" + ], + "description": "Get the list of identities for the currently logged in user.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "accountDeleteIdentity", + "tags": [ + "account" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "account\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "accountUpdateMFA", + "tags": [ + "account" + ], + "description": "Enable or disable MFA on an account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/account\/mfa\/authenticators\/{type}": { + "post": { + "summary": "Create authenticator", + "operationId": "accountCreateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "responses": { + "200": { + "description": "MFAType", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaType" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + }, + "methods": [ + { + "name": "createMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAAuthenticator" + } + }, + { + "name": "createMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaType" + } + ], + "description": "Add an authenticator app to be used as an MFA factor. Verify the authenticator using the [verify authenticator](\/docs\/references\/cloud\/client-web\/account#updateMfaAuthenticator) method.", + "demo": "account\/create-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator. Must be `totp`", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update authenticator (confirmation)", + "operationId": "accountUpdateMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + }, + "methods": [ + { + "name": "updateMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAAuthenticator" + } + }, + { + "name": "updateMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type", + "otp" + ], + "required": [ + "type", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Verify an authenticator app after adding it using the [add authenticator](\/docs\/references\/cloud\/client-web\/account#createMfaAuthenticator) method.", + "demo": "account\/update-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete authenticator", + "operationId": "accountDeleteMfaAuthenticator", + "tags": [ + "account" + ], + "description": "Delete an authenticator for a user by ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "type" + ], + "required": [ + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator for a user by ID.", + "demo": "account\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/account\/mfa\/challenges": { + "post": { + "summary": "Create MFA challenge", + "operationId": "accountCreateMfaChallenge", + "tags": [ + "account" + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallenge" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + }, + "methods": [ + { + "name": "createMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFAChallenge" + } + }, + { + "name": "createMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "factor" + ], + "required": [ + "factor" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaChallenge" + } + ], + "description": "Begin the process of MFA verification after sign-in. Finish the flow with [updateMfaChallenge](\/docs\/references\/cloud\/client-web\/account#updateMfaChallenge) method.", + "demo": "account\/create-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "factor": { + "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`, `custom`.", + "type": "string", + "example": "email", + "title": "AuthenticationFactor", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + }, + { + "type": "string", + "enum": [ + "recoverycode" + ], + "title": "recoverycode" + }, + { + "type": "string", + "enum": [ + "custom" + ], + "title": "custom" + } + ] + } + }, + "required": [ + "factor" + ] + } + } + } + } + }, + "put": { + "summary": "Update MFA challenge (confirmation)", + "operationId": "accountUpdateMfaChallenge", + "tags": [ + "account" + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-challenge.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},challengeId:{param-challengeId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + }, + "methods": [ + { + "name": "updateMfaChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFAChallenge" + } + }, + { + "name": "updateMFAChallenge", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "challengeId", + "otp" + ], + "required": [ + "challengeId", + "otp" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/session" + } + ], + "description": "Complete the MFA challenge by providing the one-time password. Finish the process of MFA verification by providing the one-time password. To begin the flow, use [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/update-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "ID of the challenge.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "otp": { + "description": "Valid verification token.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "challengeId", + "otp" + ] + } + } + } + } + } + }, + "\/account\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "accountListMfaFactors", + "tags": [ + "account" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "account\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/mfa\/recovery-codes": { + "get": { + "summary": "List MFA recovery codes", + "operationId": "accountGetMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to read recovery codes.", + "demo": "account\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "post": { + "summary": "Create MFA recovery codes", + "operationId": "accountCreateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes as backup for MFA flow. It's recommended to generate and show then immediately after user successfully adds their authehticator. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method.", + "demo": "account\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "accountUpdateMfaRecoveryCodes", + "tags": [ + "account" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "account\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method. An OTP challenge is required to regenreate recovery codes.", + "demo": "account\/update-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/name": { + "patch": { + "summary": "Update name", + "operationId": "accountUpdateName", + "tags": [ + "account" + ], + "description": "Update currently logged in user account name.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/account\/passkeys": { + "get": { + "summary": "List passkeys", + "operationId": "accountListPasskeys", + "tags": [ + "account" + ], + "description": "Get the list of verified passkeys registered by the currently logged in user.", + "responses": { + "200": { + "description": "Passkeys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/list-passkeys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter and order on the following attributes: $id, $createdAt, $updatedAt, name, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create passkey", + "operationId": "accountCreatePasskey", + "tags": [ + "account" + ], + "description": "Start registering a passkey for the currently logged in user. The session must have signed in or completed an MFA challenge within the last 10 minutes. Pass the returned `publicKey` options to `navigator.credentials.create()`, then complete the registration with [Update passkey verification](\/docs\/references\/cloud\/client-web\/account#updatePasskeyVerification). The passkey stays pending until verified, and the challenge expires after 5 minutes.", + "responses": { + "201": { + "description": "Passkey Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/create-passkey.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "passkeyId": { + "description": "Passkey ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "unique()", + "example": "<PASSKEY_ID>" + }, + "name": { + "description": "Passkey name, shown when listing passkeys. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + } + } + } + } + } + } + }, + "\/account\/passkeys\/{passkeyId}": { + "get": { + "summary": "Get passkey", + "operationId": "accountGetPasskey", + "tags": [ + "account" + ], + "description": "Get a verified passkey of the currently logged in user by its unique ID.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/get-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update passkey", + "operationId": "accountUpdatePasskey", + "tags": [ + "account" + ], + "description": "Rename a passkey of the currently logged in user.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/update-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Passkey name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete passkey", + "operationId": "accountDeletePasskey", + "tags": [ + "account" + ], + "description": "Delete a passkey from the currently logged in user. The passkey can no longer be used to sign in, although it may remain stored on the user's device. The session must have signed in or completed an MFA challenge within the last 10 minutes.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/delete-passkey.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": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/account\/passkeys\/{passkeyId}\/verification": { + "put": { + "summary": "Update passkey verification", + "operationId": "accountUpdatePasskeyVerification", + "tags": [ + "account" + ], + "description": "Complete a passkey registration started with [Create passkey](\/docs\/references\/cloud\/client-web\/account#createPasskey). Pass the JSON form of the credential returned by `navigator.credentials.create()`, for example `credential.toJSON()`. Each registration can be verified once; a failed attempt requires starting it again.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "account\/update-passkey-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "credential": { + "description": "Registration credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "credential" + ] + } + } + } + } + } + }, + "\/account\/password": { + "patch": { + "summary": "Update password", + "operationId": "accountUpdatePassword", + "tags": [ + "account" + ], + "description": "Update currently logged in user password. For validation, user is required to pass in the new password, and the old password. For users created with OAuth, Team Invites and Magic URL, oldPassword is optional.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-password.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "oldPassword": { + "description": "Current user password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/account\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "accountUpdatePhone", + "tags": [ + "account" + ], + "description": "Update the currently logged in user's phone number. After updating the phone number, the phone verification status will be reset. A confirmation SMS is not sent automatically, however you can use the [POST \/account\/verification\/phone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createPhoneVerification) endpoint to send a confirmation SMS.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "phone", + "password" + ] + } + } + } + } + } + }, + "\/account\/prefs": { + "get": { + "summary": "Get account preferences", + "operationId": "accountGetPrefs", + "tags": [ + "account" + ], + "description": "Get the preferences as a key-value object for the currently logged in user.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "patch": { + "summary": "Update preferences", + "operationId": "accountUpdatePrefs", + "tags": [ + "account" + ], + "description": "Update currently logged in user account preferences. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/account\/recovery": { + "post": { + "summary": "Create password recovery", + "operationId": "accountCreateRecovery", + "tags": [ + "account" + ], + "description": "Sends the user an email with a temporary secret key for password reset. When the user clicks the confirmation link he is redirected back to your app password reset URL with the secret key and email address values attached to the URL query string. Use the query string params to submit a request to the [PUT \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecovery) endpoint to complete the process. The verification link sent to the user's email address is valid for 1 hour.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "email", + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (confirmation)", + "operationId": "accountUpdateRecovery", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user account password reset. Both the **userId** and **secret** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the [POST \/account\/recovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery) endpoint.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid reset token.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/recovery\/otp": { + "post": { + "summary": "Create password recovery (OTP)", + "operationId": "accountCreateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit password recovery code to the user's email address. Unlike [createRecovery](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecovery), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a recovery page. Learn more about how to [complete the recovery process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateRecoveryOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/create-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "email" + ] + } + } + } + } + }, + "put": { + "summary": "Update password recovery (OTP)", + "operationId": "accountUpdateRecoveryOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user password recovery process using the 6-digit code that was emailed by [createRecoveryOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createRecoveryOTP). Pass the **userId** of the user along with the **secret** code from the email and the new **password** to set. If confirmed, this route will return a 200 status code, the code is consumed and the user's password is updated.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "recovery", + "demo": "account\/update-recovery-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid recovery OTP code.", + "type": "string", + "example": "<SECRET>" + }, + "password": { + "description": "New user password. Must be between 8 and 256 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "userId", + "secret", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions": { + "get": { + "summary": "List sessions", + "operationId": "accountListSessions", + "tags": [ + "account" + ], + "description": "Get the list of active sessions across different devices for the currently logged in user.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "delete": { + "summary": "Delete sessions", + "operationId": "accountDeleteSessions", + "tags": [ + "account" + ], + "description": "Delete all sessions from the user account and remove any sessions cookies from the end client. Pass `current` as false to keep the session making the request and sign out of every other session.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-sessions.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "current", + "description": "Delete the current session too. Use false to sign out of every other session while staying signed in on this one.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/account\/sessions\/anonymous": { + "post": { + "summary": "Create anonymous session", + "operationId": "accountCreateAnonymousSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to allow a new user to register an anonymous account in your project. This route will also create a new session for the user. To allow the new user to convert an anonymous account to a normal account, you need to update its [email and password](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmail) or create an [OAuth2 session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#CreateOAuth2Session).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-anonymous-session.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/sessions\/email": { + "post": { + "summary": "Create email password session", + "operationId": "accountCreateEmailPasswordSession", + "tags": [ + "account" + ], + "description": "Allow the user to login into their account by providing a valid email and password combination. This route will create a new session for the user. Use the optional `duration` parameter to create a shorter session, for example when the user doesn't choose \"remember me\". It must be at least 60 seconds and cannot exceed the project maximum session length.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-email-password-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},email:{param-email}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + }, + "duration": { + "description": "Session length in seconds. Minimum is 60 seconds, and it cannot exceed the project maximum session length. Defaults to the project maximum session length.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + } + }, + "required": [ + "email", + "password" + ] + } + } + } + } + } + }, + "\/account\/sessions\/id-token": { + "post": { + "summary": "Create ID token session", + "operationId": "accountCreateIdTokenSession", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using an OpenID Connect ID token obtained natively from the OAuth2 provider, for example via Google Credential Manager on Android or Sign in with Apple on iOS. No browser or redirect is involved: the ID token is verified against the provider's published signing keys and a session is created in a single request.\n\nNative sign-in is switched on per provider with its nativeEnabled setting. It is independent of the browser-based flow's enabled setting, which has no effect on this endpoint. The token's audience must match the provider's configured client ID or one of its native client IDs; tokens issued for any other client ID are rejected. For Sign in with Apple, register your app's bundle ID as a native client ID. For Google, the web client ID used by Credential Manager is usually the configured client ID; add your Android and iOS client IDs as native client IDs if your app requests tokens for them.\n\nPass the raw nonce used when requesting the ID token so it can be validated against the token's nonce claim. When signing in with Apple, the nonce is required: hash it with SHA-256 before passing it to the Apple SDK, and send the raw value here - Apple tokens requested without a nonce are rejected. For Google the nonce is optional: it is validated whenever the token carries one, and ignored when the provider issued the token without one. Apple only returns the user's name on the first authorization, and never inside the ID token - capture it on the client and pass it via the name parameter.\n\nIf there is already an active session, the new session will be attached to the logged-in account. If there are no active sessions, the server will attempt to look for a user with the same email address as the verified email received from the provider and attach the new session to the existing user. If no matching user is found - the server will create a new user.\n\nThis flow does not return provider refresh tokens. You may pass an access token the provider handed your client, along with its lifetime, to store it on the session - but Appwrite cannot renew it once it expires. If your app needs long-lived access to provider APIs, use the browser-based OAuth2 flow instead.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-id-token-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "OAuth2 provider that issued the ID token. Currently, supported providers are: apple, google.", + "type": "string", + "example": "apple", + "title": "IdTokenProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + } + ] + }, + "idToken": { + "description": "OpenID Connect ID token (JWT) obtained natively from the provider, for example via Google Credential Manager or Sign in with Apple.", + "type": "string", + "example": "<ID_TOKEN>" + }, + "nonce": { + "description": "Raw nonce used when requesting the ID token. Required for Apple, and whenever the token carries a nonce claim, which must match it. Ignored when the provider issued the token without a nonce.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "accessToken": { + "description": "Provider access token to store alongside the session for calling provider APIs. Never used for authentication.", + "type": "string", + "default": "", + "example": "<ACCESS_TOKEN>" + }, + "accessTokenExpiry": { + "description": "Seconds until the provider access token expires, as reported by the provider. Stored so clients can tell when the stored token goes stale.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "name": { + "description": "User name. Only used when creating a new user and the ID token has no name claim, such as on the first Sign in with Apple authorization.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "provider", + "idToken" + ] + } + } + } + } + } + }, + "\/account\/sessions\/magic-url": { + "put": { + "summary": "Update magic URL session", + "operationId": "accountUpdateMagicURLSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-magic-url-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/phone": { + "put": { + "summary": "Update phone session", + "operationId": "accountUpdatePhoneSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-phone-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.6.0", + "replaceWith": "account.createSession" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/token": { + "post": { + "summary": "Create session", + "operationId": "accountCreateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to create a session from token. Provide the **userId** and **secret** parameters from the successful response of authentication flows initiated by token creation. For example, magic URL and phone login.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/create-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{param-userId}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/sessions\/{sessionId}": { + "get": { + "summary": "Get session", + "operationId": "accountGetSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to get a logged in user's session using a Session ID. Inputting 'current' will return the current session being used.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/get-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to get the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update session", + "operationId": "accountUpdateSession", + "tags": [ + "account" + ], + "description": "Use this endpoint to extend a session's length. Extending a session is useful when session expiry is short. If the session was created using an OAuth provider, this endpoint refreshes the access token from the provider.", + "responses": { + "200": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/update-session.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to update the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete session", + "operationId": "accountDeleteSession", + "tags": [ + "account" + ], + "description": "Logout the user. Use 'current' as the session ID to logout on this device, use a session ID to logout on another device. If you're looking to logout the user on all devices, use [Delete Sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#deleteSessions) instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "account\/delete-session.md", + "rate-limit": 100, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "sessionId", + "description": "Session ID. Use the string 'current' to delete the current device session.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>", + "default": "current" + }, + "in": "path" + } + ] + } + }, + "\/account\/status": { + "patch": { + "summary": "Update status", + "operationId": "accountUpdateStatus", + "tags": [ + "account" + ], + "description": "Block the currently logged in user account. Behind the scene, the user record is not deleted but permanently blocked from any access. To completely delete a user, use the Users API instead.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "account", + "demo": "account\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/account\/tokens\/email": { + "post": { + "summary": "Create email token (OTP)", + "operationId": "accountCreateEmailToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the email address has never been used, a **new account is created** using the provided `userId`. Otherwise, if the email address is already attached to an account, the **user ID is ignored**. Then, the user will receive an email with the one-time password. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's email is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-email-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/magic-url": { + "post": { + "summary": "Create magic URL token", + "operationId": "accountCreateMagicURLToken", + "tags": [ + "account" + ], + "description": "Sends the user an email with a secret key for creating a session. If the provided user ID has not been registered, a new user will be created. When the user clicks the link in the email, the user is redirected back to the URL you provided with the secret key and userId values attached to the URL query string. Use the query string parameters to submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The link sent to the user's email address is valid for 1 hour.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-magic-url-token.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": [ + "url:{url},email:{param-email}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "url": { + "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "userId", + "email" + ] + } + } + } + } + } + }, + "\/account\/tokens\/oauth2\/{provider}": { + "get": { + "summary": "Create OAuth2 token", + "operationId": "accountCreateOAuth2Token", + "tags": [ + "account" + ], + "description": "Allow the user to login to their account using the OAuth2 provider of their choice. Each OAuth2 provider should be enabled from the Appwrite console first. Use the success and failure arguments to provide a redirect URL's back to your app when login is completed. \n\nIf authentication succeeds, `userId` and `secret` of a token will be appended to the success URL as query parameters. These can be used to create a new session using the [Create session](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint.\n\nIf there is already an active session, the OAuth2 identity is attached to the logged-in account and that session stays active until the token is exchanged for a new one.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "301": { + "description": "No content", + "content": { + "text\/html": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-o-auth-2-token.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "provider", + "description": "OAuth2 Provider. Currently, supported providers are: amazon, apple, appwrite, auth0, authentik, autodesk, bitbucket, bitly, box, cloudflare, dailymotion, discord, disqus, dropbox, etsy, facebook, figma, fusionauth, github, gitlab, google, huggingface, kakao, keycloak, kick, linkedin, microsoft, notion, oidc, okta, paypal, paypalSandbox, podio, resend, salesforce, slack, spotify, stripe, tiktok, tradeshift, tradeshiftBox, twitch, webflow, wordpress, x, yahoo, yammer, yandex, zoho, zoom.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "OAuthProvider", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + }, + { + "name": "success", + "description": "URL to redirect back to your app after a successful login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "failure", + "description": "URL to redirect back to your app after a failed login attempt. Only URLs from hostnames in your project's platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "scopes", + "description": "A list of custom OAuth2 scopes. Check each provider internal docs for a list of supported scopes. Maximum of 100 scopes are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "state", + "description": "An opaque value your app generates and keeps, for example in a cookie. It is returned unchanged as the `state` query parameter on the success and failure URLs, so your app can check that the sign-in it receives is one it started. Printable ASCII only (RFC 6749 Appendix A.5). Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/account\/tokens\/passkey": { + "post": { + "summary": "Create passkey token", + "operationId": "accountCreatePasskeyToken", + "tags": [ + "account" + ], + "description": "Start signing in with a passkey. No email or user ID is needed: pass the returned `publicKey` options to `navigator.credentials.get()` and the user picks one of their passkeys. Then call [Update passkey token](\/docs\/references\/cloud\/client-web\/account#updatePasskeyToken) with the credential to receive a token, and exchange it with [Create session](\/docs\/references\/cloud\/client-web\/account#createSession). The challenge expires after 5 minutes.", + "responses": { + "201": { + "description": "Passkey Challenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-passkey-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update passkey token", + "operationId": "accountUpdatePasskeyToken", + "tags": [ + "account" + ], + "description": "Complete a passkey sign-in started with [Create passkey token](\/docs\/references\/cloud\/client-web\/account#createPasskeyToken). Pass the challenge ID and the JSON form of the credential returned by `navigator.credentials.get()`, for example `credential.toJSON()`. The returned token includes its secret and expires after 1 minute: exchange it for a session with [Create session](\/docs\/references\/cloud\/client-web\/account#createSession). Passkeys require user verification, so the session also satisfies MFA. Each challenge can only be used once.", + "responses": { + "201": { + "description": "Token Secret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/tokenSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/update-passkey-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "challengeId": { + "description": "Challenge ID returned by createPasskeyToken.", + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "credential": { + "description": "Authentication credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "challengeId", + "credential" + ] + } + } + } + } + } + }, + "\/account\/tokens\/phone": { + "post": { + "summary": "Create phone token", + "operationId": "accountCreatePhoneToken", + "tags": [ + "account" + ], + "description": "Sends the user an SMS with a secret key for creating a session. If the provided user ID has not be registered, a new user will be created. Use the returned user ID and secret and submit a request to the [POST \/v1\/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process. The secret sent to the user's phone is valid for 15 minutes.\n\nA user is limited to 10 active sessions at a time by default. [Learn more about session limits](https:\/\/appwrite.io\/docs\/authentication-security#limits).", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "account\/create-phone-token.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},phone:{param-phone}", + "url:{url},ip:{ip}" + ], + "scope": "sessions.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", + "type": "string", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "userId", + "phone" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email": { + "post": { + "summary": "Create email verification", + "operationId": "accountCreateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-email-verification.md", + "public": true + }, + { + "name": "createVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "url" + ], + "required": [ + "url" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to send a verification message to your user email address to confirm they are the valid owners of that address. Both the **userId** and **secret** arguments will be passed as query parameters to the URL you have provided to be attached to the verification email. The provided URL should redirect the user back to your app and allow you to complete the verification process by verifying both the **userId** and **secret** parameters. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateVerification). The verification link sent to the user's email address is valid for 7 days.\n\nPlease note that in order to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md), the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface.\n", + "demo": "account\/create-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.createEmailVerification" + } + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "url": { + "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "url" + ] + } + } + } + } + }, + "put": { + "summary": "Update email verification (confirmation)", + "operationId": "accountUpdateEmailVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "updateEmailVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-email-verification.md", + "public": true + }, + { + "name": "updateVerification", + "namespace": "account", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "userId", + "secret" + ], + "required": [ + "userId", + "secret" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/token" + } + ], + "description": "Use this endpoint to complete the user email verification process. Use both the **userId** and **secret** parameters that were attached to your app URL to verify the user email ownership. If confirmed this route will return a 200 status code.", + "demo": "account\/update-verification.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "account.updateEmailVerification" + } + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/email\/otp": { + "post": { + "summary": "Create email verification (OTP)", + "operationId": "accountCreateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a 6-digit verification code to the currently logged in user's email address. Unlike [createEmailVerification](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerification), this method requires no redirect URL, which makes it suitable for mobile and desktop apps that cannot host a verification page. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updateEmailVerificationOTP). The code sent to the user's email address is valid for 15 minutes.\n\nEnable the **phrase** parameter to include a randomly generated security phrase in both the email and the response. Showing that phrase in your app lets the user confirm the email genuinely came from your request, which helps protect against phishing.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{userId}", + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phrase": { + "description": "Toggle for security phrase. If enabled, email will be sent with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "put": { + "summary": "Update email verification (OTP)", + "operationId": "accountUpdateEmailVerificationOTP", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user email verification process using the 6-digit code that was emailed by [createEmailVerificationOTP](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createEmailVerificationOTP). Pass the **userId** of the user being verified along with the **secret** code from the email. If confirmed, this route will return a 200 status code and the code is consumed.\n", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-email-verification-otp.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification OTP code.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/account\/verifications\/phone": { + "post": { + "summary": "Create phone verification", + "operationId": "accountCreatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to send a verification SMS to the currently logged in user. This endpoint is meant for use after updating a user's phone number using the [accountUpdatePhone](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhone) endpoint. Learn more about how to [complete the verification process](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#updatePhoneVerification). The verification code sent to the user's phone number is valid for 15 minutes.", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/create-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": [ + "url:{url},userId:{userId}", + "url:{url},ip:{ip}" + ], + "scope": "account", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + }, + "put": { + "summary": "Update phone verification (confirmation)", + "operationId": "accountUpdatePhoneVerification", + "tags": [ + "account" + ], + "description": "Use this endpoint to complete the user phone verification process. Use the **userId** and **secret** that were sent to your user's phone number to verify the user email ownership. If confirmed this route will return a 200 status code.", + "responses": { + "200": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "verification", + "demo": "account\/update-phone-verification.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "userId:{param-userId}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Valid verification token.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/activities\/events": { + "get": { + "summary": "List events", + "operationId": "activitiesListEvents", + "tags": [ + "activities" + ], + "description": "List all events for selected filters.", + "responses": { + "200": { + "description": "Activity event list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEventList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "activities\/list-events.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as userId, teamId, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/activities\/events\/{eventId}": { + "get": { + "summary": "Get event", + "operationId": "activitiesGetEvent", + "tags": [ + "activities" + ], + "description": "Get event by ID.\n", + "responses": { + "200": { + "description": "ActivityEvent", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/activityEvent" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "activities\/get-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "events.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "eventId", + "description": "Event ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EVENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/analytics\/properties": { + "get": { + "summary": "List analytics properties", + "operationId": "analyticsListProperties", + "tags": [ + "analytics" + ], + "description": "List analytics properties for the current project.", + "responses": { + "200": { + "description": "Analytics properties list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsPropertyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/list-properties.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, domain, enabled, public", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Matches the property ID, name and domain. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create analytics property", + "operationId": "analyticsCreateProperty", + "tags": [ + "analytics" + ], + "description": "Create a new analytics property to track a website or application.", + "responses": { + "201": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/create-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "propertyId": { + "description": "Unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Max length is 36 chars.", + "type": "string", + "example": "<PROPERTY_ID>" + }, + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>" + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Optional for native apps.", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "default": true, + "example": false + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "default": false, + "example": false + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "default": [ + "*" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "propertyId", + "name" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}": { + "get": { + "summary": "Get analytics property", + "operationId": "analyticsGetProperty", + "tags": [ + "analytics" + ], + "description": "Get an analytics property by ID.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/get-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update analytics property", + "operationId": "analyticsUpdateProperty", + "tags": [ + "analytics" + ], + "description": "Update an analytics property. Only the attributes you pass are changed; omitted attributes keep their current value.", + "responses": { + "200": { + "description": "AnalyticsProperty", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsProperty" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/update-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Human-readable name for this property.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "domain": { + "description": "Primary domain to track (e.g. example.com). Pass an empty string to clear it.", + "type": "string", + "example": "<DOMAIN>", + "nullable": true + }, + "enabled": { + "description": "Whether tracking is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "public": { + "description": "Whether stats are publicly viewable.", + "type": "boolean", + "example": false, + "nullable": true + }, + "allowedOrigins": { + "description": "Allowed origins for tracking. Use [\"*\"] to allow all.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete analytics property", + "operationId": "analyticsDeleteProperty", + "tags": [ + "analytics" + ], + "description": "Delete an analytics property along with every event and session collected for it. This cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "properties", + "demo": "analytics\/delete-property.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/analytics\/properties\/{propertyId}\/events": { + "post": { + "summary": "Track analytics event", + "operationId": "analyticsCreateEvent", + "tags": [ + "analytics" + ], + "description": "Send a tracking event from a browser, native app, or server-side SDK.", + "responses": { + "202": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "events", + "demo": "analytics\/create-event.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "global" + ], + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Event name. \"pageview\" is just a conventional event name; events are not modeled specially.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Full page URL or screen identifier.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "domain": { + "description": "Hostname (e.g. example.com).", + "type": "string", + "default": "", + "example": "<DOMAIN>" + }, + "referrer": { + "description": "Referrer URL.", + "type": "string", + "default": "", + "example": "<REFERRER>" + }, + "screenWidth": { + "description": "Viewport width in CSS pixels.", + "type": "integer", + "default": 0, + "format": "int32" + }, + "sessionHash": { + "description": "Optional session hash (provided by SDK).", + "type": "string", + "default": "", + "example": "<SESSION_HASH>" + }, + "scrollDepth": { + "description": "Scroll depth percentage 0-100.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "engagementTime": { + "description": "Engagement time in seconds, 0-4294967295.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "props": { + "description": "Custom string properties as a flat key=value list (max 32 entries, alternating key,value).", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "userId": { + "description": "Override user ID. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "ip": { + "description": "Override IP address. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<IP>" + }, + "userAgent": { + "description": "Override user agent. Requires API-key auth with analytics.write scope.", + "type": "string", + "default": "", + "example": "<USER_AGENT>" + } + }, + "required": [ + "name", + "url" + ] + } + } + } + } + } + }, + "\/analytics\/properties\/{propertyId}\/metrics": { + "get": { + "summary": "List analytics metrics for a property", + "operationId": "analyticsListMetrics", + "tags": [ + "analytics" + ], + "description": "Read analytics metrics (visitors, sessions, pageviews, events, bounceRate, \u2026) for a property over a date range.\n\n**Three response shapes**, chosen by `dimensions[]` and `interval`:\n- Neither: one row aggregating the whole window, with `value` and `date` null. Only this shape carries `pageviews`, `visits`, `bounceRate`, `visitDuration`, `viewsPerVisit`, `scrollDepth` and `engagementTime`.\n- `dimensions[]`: one row per dimension value, ranked by visitors, with `value` set and `date` null.\n- `interval`: one row per time bucket in chronological order, with `date` set and `value` null.\n\nCombining `dimensions[]` with `interval` is not supported yet. `queries[]` filters the underlying events using standard Utopia query syntax.", + "responses": { + "200": { + "description": "AnalyticsMetricList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/analyticsMetricList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "metrics", + "demo": "analytics\/list-metrics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "analytics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "propertyId", + "description": "Analytics property unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROPERTY_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Up to 10 filter queries in Utopia syntax. Allowed attributes: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, botName, botCategory, eventName. page, eventName are only accepted alongside `interval`, or with a breakdown on a dimension other than entryPage, exitPage. Allowed methods: equal, notEqual, contains, startsWith, endsWith. Example: `queries[]=equal(\"country\", [\"US\"])`.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "interval", + "description": "Time bucket size. Omit (null) for a flat aggregate over the whole window. Allowed: 1h, 1d, 1w, 1m.", + "required": false, + "schema": { + "type": "string", + "example": "1h", + "title": "AnalyticsInterval", + "oneOf": [ + { + "type": "string", + "enum": [ + "1h" + ], + "title": "One Hour" + }, + { + "type": "string", + "enum": [ + "1d" + ], + "title": "One Day" + }, + { + "type": "string", + "enum": [ + "1w" + ], + "title": "One Week" + }, + { + "type": "string", + "enum": [ + "1m" + ], + "title": "One Month" + } + ] + }, + "in": "query" + }, + { + "name": "dimensions", + "description": "Dimension to break the metrics down by. One at most for now; the parameter is a list so that cap can be raised without a breaking change. Allowed: country, region, city, browser, operatingSystem, device, screenSize, referrerSource, channel, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, page, hostname, entryPage, exitPage, trafficType, botName, botCategory, eventName.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "AnalyticsDimension", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "country" + ], + "title": "country" + }, + { + "type": "string", + "enum": [ + "region" + ], + "title": "region" + }, + { + "type": "string", + "enum": [ + "city" + ], + "title": "city" + }, + { + "type": "string", + "enum": [ + "browser" + ], + "title": "browser" + }, + { + "type": "string", + "enum": [ + "operatingSystem" + ], + "title": "operatingSystem" + }, + { + "type": "string", + "enum": [ + "device" + ], + "title": "device" + }, + { + "type": "string", + "enum": [ + "screenSize" + ], + "title": "screenSize" + }, + { + "type": "string", + "enum": [ + "referrerSource" + ], + "title": "referrerSource" + }, + { + "type": "string", + "enum": [ + "channel" + ], + "title": "channel" + }, + { + "type": "string", + "enum": [ + "utmSource" + ], + "title": "utmSource" + }, + { + "type": "string", + "enum": [ + "utmMedium" + ], + "title": "utmMedium" + }, + { + "type": "string", + "enum": [ + "utmCampaign" + ], + "title": "utmCampaign" + }, + { + "type": "string", + "enum": [ + "utmContent" + ], + "title": "utmContent" + }, + { + "type": "string", + "enum": [ + "utmTerm" + ], + "title": "utmTerm" + }, + { + "type": "string", + "enum": [ + "page" + ], + "title": "page" + }, + { + "type": "string", + "enum": [ + "hostname" + ], + "title": "hostname" + }, + { + "type": "string", + "enum": [ + "entryPage" + ], + "title": "entryPage" + }, + { + "type": "string", + "enum": [ + "exitPage" + ], + "title": "exitPage" + }, + { + "type": "string", + "enum": [ + "trafficType" + ], + "title": "trafficType" + }, + { + "type": "string", + "enum": [ + "botName" + ], + "title": "botName" + }, + { + "type": "string", + "enum": [ + "botCategory" + ], + "title": "botCategory" + }, + { + "type": "string", + "enum": [ + "eventName" + ], + "title": "eventName" + } + ] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "dateRange", + "description": "Date range shorthand (e.g. 7d, 30d). Ignored for any bound you supply explicitly via startAt\/endAt.", + "required": false, + "schema": { + "type": "string", + "example": "<DATE_RANGE>", + "default": "30d" + }, + "in": "query" + }, + { + "name": "startAt", + "description": "Explicit window start in ISO 8601. Defaults to endAt minus dateRange.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "endAt", + "description": "Explicit window end in ISO 8601. Defaults to the current time.", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "example": "2020-10-15T06:38:00.000+00:00", + "default": "" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of ranked values to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 100 + }, + "in": "query" + } + ] + } + }, + "\/apps": { + "get": { + "summary": "List Applications", + "operationId": "appsList", + "tags": [ + "apps" + ], + "description": "List applications.", + "responses": { + "200": { + "description": "Apps list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/list.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Application", + "operationId": "appsCreate", + "tags": [ + "apps" + ], + "description": "Create a new application.", + "responses": { + "201": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/create.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<APP_ID>" + }, + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "teamId": { + "description": "Team unique ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + } + }, + "required": [ + "appId", + "name", + "redirectUris" + ] + } + } + } + } + } + }, + "\/apps\/scopes\/installations": { + "get": { + "summary": "List Installation Scopes", + "operationId": "appsListInstallationScopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request when installed on a team.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-installation-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/scopes\/oauth2": { + "get": { + "summary": "List OAuth2 Scopes", + "operationId": "appsListOAuth2Scopes", + "tags": [ + "apps" + ], + "description": "List scopes an application can request during the OAuth2 flow.", + "responses": { + "200": { + "description": "App scopes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appScopeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "scopes", + "demo": "apps\/list-o-auth-2-scopes.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/apps\/{appId}": { + "get": { + "summary": "Get Application", + "operationId": "appsGet", + "tags": [ + "apps" + ], + "description": "Get an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/get.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Application", + "operationId": "appsUpdate", + "tags": [ + "apps" + ], + "description": "Update an application by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Application name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Application description shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "clientUri": { + "description": "Application homepage URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "logoUri": { + "description": "Application logo URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "privacyPolicyUrl": { + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "termsUrl": { + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "contacts": { + "description": "Application support or security contact emails. Maximum of 100 contacts are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "tagline": { + "description": "Application tagline shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "<TAGLINE>" + }, + "tags": { + "description": "Application tags shown to users during OAuth2 consent. Maximum of 100 tags are allowed, each up to 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "images": { + "description": "Application image URLs shown to users during OAuth2 consent. Maximum of 100 images are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "supportUrl": { + "description": "Application support URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "dataDeletionUrl": { + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "enabled": { + "description": "Is application enabled?", + "type": "boolean", + "default": true, + "example": false + }, + "redirectUris": { + "description": "Redirect URIs. Each must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI (e.g. com.example.app:\/oauth), and must not contain a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "postLogoutRedirectUris": { + "description": "Post-logout redirect URIs for OpenID Connect RP-Initiated Logout. Each must be an https URL, an http loopback URL, or a private-use scheme URI, and must not contain a fragment. After ending the user session, the logout endpoint only redirects to URIs in this list.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "type": { + "description": "OAuth2 client type. Use `public` for SPAs, mobile, and native apps that cannot keep a `client_secret` \u2014 PKCE is then required at the token endpoint. Use `confidential` for server-side clients that present a `client_secret`. Defaults to `confidential`.", + "type": "string", + "default": "confidential", + "example": "public" + }, + "deviceFlow": { + "description": "Allow this client to use the OAuth2 Device Authorization Grant (RFC 8628) for input-constrained devices such as TVs and CLIs. Defaults to false.", + "type": "boolean", + "default": false, + "example": false + }, + "installationScopes": { + "description": "Scopes the application requests when installed on a team. Only scopes allowed by the project's OAuth2 server installation scopes configuration are accepted; use the list installation scopes endpoint to discover available values. Maximum of 100 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationRedirectUrl": { + "description": "URL users are redirected to after creating or updating an installation of this application. Must be an https URL, an http loopback URL (localhost, 127.0.0.1, [::1]), or a private-use scheme URI, and must not contain a fragment. Leave empty for no redirect.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete Application", + "operationId": "appsDelete", + "tags": [ + "apps" + ], + "description": "Delete an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "appsListInstallations", + "tags": [ + "apps" + ], + "description": "List installations of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "appsGetInstallation", + "tags": [ + "apps" + ], + "description": "Get an installation of an application by its unique ID. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.read", + "apps.installations.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Installation", + "operationId": "appsDeleteInstallation", + "tags": [ + "apps" + ], + "description": "Delete an installation of an application by its unique ID. Requires a caller with update access to the app. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/installations\/{installationId}\/tokens": { + "post": { + "summary": "Create Installation Token", + "operationId": "appsCreateInstallationToken", + "tags": [ + "apps" + ], + "description": "Create a token for an installation of an application. Requires an app key sent in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header, or a caller with update access to the app. The returned token carries the scopes and authorization details granted to the installation, and can be used as an `Authorization: Bearer` header everywhere OAuth2 access tokens are accepted. Multiple tokens can be active for the same installation at once; each token stays valid until it expires or the installation is updated or deleted.", + "responses": { + "201": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "apps\/create-installation-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip}", + "scope": [ + "apps.write", + "apps.tokens.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys": { + "get": { + "summary": "List App Keys", + "operationId": "appsListKeys", + "tags": [ + "apps" + ], + "description": "List app keys for an application.", + "responses": { + "200": { + "description": "App keys list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/list-keys.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create App Key", + "operationId": "appsCreateKey", + "tags": [ + "apps" + ], + "description": "Create a new app key for an application. App keys carry no scopes; send one in the `X-Appwrite-Key` header alongside the `X-Appwrite-App` header to list the application's installations and create installation access tokens.", + "responses": { + "201": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/create-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/keys\/{keyId}": { + "get": { + "summary": "Get App Key", + "operationId": "appsGetKey", + "tags": [ + "apps" + ], + "description": "Get an app key by its unique ID.", + "responses": { + "200": { + "description": "AppKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/get-key.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete App Key", + "operationId": "appsDeleteKey", + "tags": [ + "apps" + ], + "description": "Delete an app key by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "apps\/delete-key.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "App key unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/labels": { + "put": { + "summary": "Update Application Labels", + "operationId": "appsUpdateLabels", + "tags": [ + "apps" + ], + "description": "Update the labels of an application. Labels are read-only for clients; only a server SDK using a project API key can set them. Replaces the previous labels.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-labels.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of application labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long. Reserved labels are rejected.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/secrets": { + "get": { + "summary": "List Secrets", + "operationId": "appsListSecrets", + "tags": [ + "apps" + ], + "description": "List client secrets for an application.", + "responses": { + "200": { + "description": "App secrets list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/list-secrets.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Secret", + "operationId": "appsCreateSecret", + "tags": [ + "apps" + ], + "description": "Create a new client secret for an application.", + "responses": { + "201": { + "description": "AppSecretPlaintext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecretPlaintext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/create-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/secrets\/{secretId}": { + "get": { + "summary": "Get Secret", + "operationId": "appsGetSecret", + "tags": [ + "apps" + ], + "description": "Get an application client secret by its unique ID.", + "responses": { + "200": { + "description": "AppSecret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/get-secret.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete Secret", + "operationId": "appsDeleteSecret", + "tags": [ + "apps" + ], + "description": "Delete an application client secret by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "secrets", + "demo": "apps\/delete-secret.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + }, + { + "name": "secretId", + "description": "Secret unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SECRET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/apps\/{appId}\/team": { + "patch": { + "summary": "Update Team", + "operationId": "appsUpdateTeam", + "tags": [ + "apps" + ], + "description": "Transfer an application to another team by its unique ID.", + "responses": { + "200": { + "description": "App", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/app" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/update-team.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID of the team to transfer application to.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/apps\/{appId}\/tokens": { + "delete": { + "summary": "Delete Tokens", + "operationId": "appsDeleteTokens", + "tags": [ + "apps" + ], + "description": "Revoke all tokens for an application by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "apps", + "demo": "apps\/delete-tokens.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "apps.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "appId", + "description": "Application unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<APP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/avatars\/browsers\/{code}": { + "get": { + "summary": "Get browser icon", + "operationId": "avatarsGetBrowser", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user [GET \/account\/sessions](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getSessions) endpoint. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-browser.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Browser Code.", + "required": true, + "schema": { + "type": "string", + "example": "aa", + "title": "Browser", + "oneOf": [ + { + "type": "string", + "enum": [ + "aa" + ], + "title": "Avant Browser" + }, + { + "type": "string", + "enum": [ + "an" + ], + "title": "Android WebView Beta" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Google Chrome" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "Google Chrome (iOS)" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Google Chrome (Mobile)" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Chromium" + }, + { + "type": "string", + "enum": [ + "ff" + ], + "title": "Mozilla Firefox" + }, + { + "type": "string", + "enum": [ + "sf" + ], + "title": "Safari" + }, + { + "type": "string", + "enum": [ + "mf" + ], + "title": "Mobile Safari" + }, + { + "type": "string", + "enum": [ + "ps" + ], + "title": "Microsoft Edge" + }, + { + "type": "string", + "enum": [ + "oi" + ], + "title": "Microsoft Edge (iOS)" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Opera Mini" + }, + { + "type": "string", + "enum": [ + "op" + ], + "title": "Opera" + }, + { + "type": "string", + "enum": [ + "on" + ], + "title": "Opera (Next)" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/credit-cards\/{code}": { + "get": { + "summary": "Get credit card icon", + "operationId": "avatarsGetCreditCard", + "tags": [ + "avatars" + ], + "description": "The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-credit-card.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Credit Card Code. Possible values: amex, argencard, cabal, cencosud, diners, discover, elo, hipercard, jcb, mastercard, naranja, targeta-shopping, unionpay, visa, mir, maestro, rupay.", + "required": true, + "schema": { + "type": "string", + "example": "amex", + "title": "CreditCard", + "oneOf": [ + { + "type": "string", + "enum": [ + "amex" + ], + "title": "American Express" + }, + { + "type": "string", + "enum": [ + "argencard" + ], + "title": "Argencard" + }, + { + "type": "string", + "enum": [ + "cabal" + ], + "title": "Cabal" + }, + { + "type": "string", + "enum": [ + "cencosud" + ], + "title": "Cencosud" + }, + { + "type": "string", + "enum": [ + "diners" + ], + "title": "Diners Club" + }, + { + "type": "string", + "enum": [ + "discover" + ], + "title": "Discover" + }, + { + "type": "string", + "enum": [ + "elo" + ], + "title": "Elo" + }, + { + "type": "string", + "enum": [ + "hipercard" + ], + "title": "Hipercard" + }, + { + "type": "string", + "enum": [ + "jcb" + ], + "title": "JCB" + }, + { + "type": "string", + "enum": [ + "mastercard" + ], + "title": "Mastercard" + }, + { + "type": "string", + "enum": [ + "naranja" + ], + "title": "Naranja" + }, + { + "type": "string", + "enum": [ + "targeta-shopping" + ], + "title": "Tarjeta Shopping" + }, + { + "type": "string", + "enum": [ + "unionpay" + ], + "title": "Union Pay" + }, + { + "type": "string", + "enum": [ + "visa" + ], + "title": "Visa" + }, + { + "type": "string", + "enum": [ + "mir" + ], + "title": "MIR" + }, + { + "type": "string", + "enum": [ + "maestro" + ], + "title": "Maestro" + }, + { + "type": "string", + "enum": [ + "rupay" + ], + "title": "Rupay" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/favicon": { + "get": { + "summary": "Get favicon", + "operationId": "avatarsGetFavicon", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch the favorite icon (AKA favicon) of any remote website URL.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-favicon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to fetch the favicon from.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/flags\/{code}": { + "get": { + "summary": "Get country flag", + "operationId": "avatarsGetFlag", + "tags": [ + "avatars" + ], + "description": "You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. Country codes follow the [ISO 3166-1](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) standard.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-flag.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "code", + "description": "Country Code. ISO Alpha-2 country code format.", + "required": true, + "schema": { + "type": "string", + "example": "af", + "title": "Flag", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "Afghanistan" + }, + { + "type": "string", + "enum": [ + "ao" + ], + "title": "Angola" + }, + { + "type": "string", + "enum": [ + "al" + ], + "title": "Albania" + }, + { + "type": "string", + "enum": [ + "ad" + ], + "title": "Andorra" + }, + { + "type": "string", + "enum": [ + "ae" + ], + "title": "United Arab Emirates" + }, + { + "type": "string", + "enum": [ + "ar" + ], + "title": "Argentina" + }, + { + "type": "string", + "enum": [ + "am" + ], + "title": "Armenia" + }, + { + "type": "string", + "enum": [ + "ag" + ], + "title": "Antigua and Barbuda" + }, + { + "type": "string", + "enum": [ + "au" + ], + "title": "Australia" + }, + { + "type": "string", + "enum": [ + "at" + ], + "title": "Austria" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "Azerbaijan" + }, + { + "type": "string", + "enum": [ + "bi" + ], + "title": "Burundi" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "Belgium" + }, + { + "type": "string", + "enum": [ + "bj" + ], + "title": "Benin" + }, + { + "type": "string", + "enum": [ + "bf" + ], + "title": "Burkina Faso" + }, + { + "type": "string", + "enum": [ + "bd" + ], + "title": "Bangladesh" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "Bulgaria" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "Bahrain" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "Bahamas" + }, + { + "type": "string", + "enum": [ + "ba" + ], + "title": "Bosnia and Herzegovina" + }, + { + "type": "string", + "enum": [ + "by" + ], + "title": "Belarus" + }, + { + "type": "string", + "enum": [ + "bz" + ], + "title": "Belize" + }, + { + "type": "string", + "enum": [ + "bo" + ], + "title": "Bolivia" + }, + { + "type": "string", + "enum": [ + "br" + ], + "title": "Brazil" + }, + { + "type": "string", + "enum": [ + "bb" + ], + "title": "Barbados" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "Brunei Darussalam" + }, + { + "type": "string", + "enum": [ + "bt" + ], + "title": "Bhutan" + }, + { + "type": "string", + "enum": [ + "bw" + ], + "title": "Botswana" + }, + { + "type": "string", + "enum": [ + "cf" + ], + "title": "Central African Republic" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "Canada" + }, + { + "type": "string", + "enum": [ + "ch" + ], + "title": "Switzerland" + }, + { + "type": "string", + "enum": [ + "cl" + ], + "title": "Chile" + }, + { + "type": "string", + "enum": [ + "cn" + ], + "title": "China" + }, + { + "type": "string", + "enum": [ + "ci" + ], + "title": "C\u00f4te d'Ivoire" + }, + { + "type": "string", + "enum": [ + "cm" + ], + "title": "Cameroon" + }, + { + "type": "string", + "enum": [ + "cd" + ], + "title": "Democratic Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "cg" + ], + "title": "Republic of the Congo" + }, + { + "type": "string", + "enum": [ + "co" + ], + "title": "Colombia" + }, + { + "type": "string", + "enum": [ + "km" + ], + "title": "Comoros" + }, + { + "type": "string", + "enum": [ + "cv" + ], + "title": "Cape Verde" + }, + { + "type": "string", + "enum": [ + "cr" + ], + "title": "Costa Rica" + }, + { + "type": "string", + "enum": [ + "cu" + ], + "title": "Cuba" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "Cyprus" + }, + { + "type": "string", + "enum": [ + "cz" + ], + "title": "Czech Republic" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "Germany" + }, + { + "type": "string", + "enum": [ + "dj" + ], + "title": "Djibouti" + }, + { + "type": "string", + "enum": [ + "dm" + ], + "title": "Dominica" + }, + { + "type": "string", + "enum": [ + "dk" + ], + "title": "Denmark" + }, + { + "type": "string", + "enum": [ + "do" + ], + "title": "Dominican Republic" + }, + { + "type": "string", + "enum": [ + "dz" + ], + "title": "Algeria" + }, + { + "type": "string", + "enum": [ + "ec" + ], + "title": "Ecuador" + }, + { + "type": "string", + "enum": [ + "eg" + ], + "title": "Egypt" + }, + { + "type": "string", + "enum": [ + "er" + ], + "title": "Eritrea" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "Spain" + }, + { + "type": "string", + "enum": [ + "ee" + ], + "title": "Estonia" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "Ethiopia" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "Finland" + }, + { + "type": "string", + "enum": [ + "fj" + ], + "title": "Fiji" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "France" + }, + { + "type": "string", + "enum": [ + "fm" + ], + "title": "Micronesia (Federated States of)" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "Gabon" + }, + { + "type": "string", + "enum": [ + "gb" + ], + "title": "United Kingdom" + }, + { + "type": "string", + "enum": [ + "ge" + ], + "title": "Georgia" + }, + { + "type": "string", + "enum": [ + "gh" + ], + "title": "Ghana" + }, + { + "type": "string", + "enum": [ + "gn" + ], + "title": "Guinea" + }, + { + "type": "string", + "enum": [ + "gm" + ], + "title": "Gambia" + }, + { + "type": "string", + "enum": [ + "gw" + ], + "title": "Guinea-Bissau" + }, + { + "type": "string", + "enum": [ + "gq" + ], + "title": "Equatorial Guinea" + }, + { + "type": "string", + "enum": [ + "gr" + ], + "title": "Greece" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "Grenada" + }, + { + "type": "string", + "enum": [ + "gt" + ], + "title": "Guatemala" + }, + { + "type": "string", + "enum": [ + "gy" + ], + "title": "Guyana" + }, + { + "type": "string", + "enum": [ + "hn" + ], + "title": "Honduras" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "Croatia" + }, + { + "type": "string", + "enum": [ + "ht" + ], + "title": "Haiti" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "Hungary" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "Indonesia" + }, + { + "type": "string", + "enum": [ + "in" + ], + "title": "India" + }, + { + "type": "string", + "enum": [ + "ie" + ], + "title": "Ireland" + }, + { + "type": "string", + "enum": [ + "ir" + ], + "title": "Iran (Islamic Republic of)" + }, + { + "type": "string", + "enum": [ + "iq" + ], + "title": "Iraq" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "Iceland" + }, + { + "type": "string", + "enum": [ + "il" + ], + "title": "Israel" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "Italy" + }, + { + "type": "string", + "enum": [ + "jm" + ], + "title": "Jamaica" + }, + { + "type": "string", + "enum": [ + "jo" + ], + "title": "Jordan" + }, + { + "type": "string", + "enum": [ + "jp" + ], + "title": "Japan" + }, + { + "type": "string", + "enum": [ + "kz" + ], + "title": "Kazakhstan" + }, + { + "type": "string", + "enum": [ + "ke" + ], + "title": "Kenya" + }, + { + "type": "string", + "enum": [ + "kg" + ], + "title": "Kyrgyzstan" + }, + { + "type": "string", + "enum": [ + "kh" + ], + "title": "Cambodia" + }, + { + "type": "string", + "enum": [ + "ki" + ], + "title": "Kiribati" + }, + { + "type": "string", + "enum": [ + "kn" + ], + "title": "Saint Kitts and Nevis" + }, + { + "type": "string", + "enum": [ + "kr" + ], + "title": "South Korea" + }, + { + "type": "string", + "enum": [ + "kw" + ], + "title": "Kuwait" + }, + { + "type": "string", + "enum": [ + "la" + ], + "title": "Lao People's Democratic Republic" + }, + { + "type": "string", + "enum": [ + "lb" + ], + "title": "Lebanon" + }, + { + "type": "string", + "enum": [ + "lr" + ], + "title": "Liberia" + }, + { + "type": "string", + "enum": [ + "ly" + ], + "title": "Libya" + }, + { + "type": "string", + "enum": [ + "lc" + ], + "title": "Saint Lucia" + }, + { + "type": "string", + "enum": [ + "li" + ], + "title": "Liechtenstein" + }, + { + "type": "string", + "enum": [ + "lk" + ], + "title": "Sri Lanka" + }, + { + "type": "string", + "enum": [ + "ls" + ], + "title": "Lesotho" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "Lithuania" + }, + { + "type": "string", + "enum": [ + "lu" + ], + "title": "Luxembourg" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "Latvia" + }, + { + "type": "string", + "enum": [ + "ma" + ], + "title": "Morocco" + }, + { + "type": "string", + "enum": [ + "mc" + ], + "title": "Monaco" + }, + { + "type": "string", + "enum": [ + "md" + ], + "title": "Moldova" + }, + { + "type": "string", + "enum": [ + "mg" + ], + "title": "Madagascar" + }, + { + "type": "string", + "enum": [ + "mv" + ], + "title": "Maldives" + }, + { + "type": "string", + "enum": [ + "mx" + ], + "title": "Mexico" + }, + { + "type": "string", + "enum": [ + "mh" + ], + "title": "Marshall Islands" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "North Macedonia" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "Mali" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "Malta" + }, + { + "type": "string", + "enum": [ + "mm" + ], + "title": "Myanmar" + }, + { + "type": "string", + "enum": [ + "me" + ], + "title": "Montenegro" + }, + { + "type": "string", + "enum": [ + "mn" + ], + "title": "Mongolia" + }, + { + "type": "string", + "enum": [ + "mz" + ], + "title": "Mozambique" + }, + { + "type": "string", + "enum": [ + "mr" + ], + "title": "Mauritania" + }, + { + "type": "string", + "enum": [ + "mu" + ], + "title": "Mauritius" + }, + { + "type": "string", + "enum": [ + "mw" + ], + "title": "Malawi" + }, + { + "type": "string", + "enum": [ + "my" + ], + "title": "Malaysia" + }, + { + "type": "string", + "enum": [ + "na" + ], + "title": "Namibia" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "Niger" + }, + { + "type": "string", + "enum": [ + "ng" + ], + "title": "Nigeria" + }, + { + "type": "string", + "enum": [ + "ni" + ], + "title": "Nicaragua" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "Netherlands" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "Norway" + }, + { + "type": "string", + "enum": [ + "np" + ], + "title": "Nepal" + }, + { + "type": "string", + "enum": [ + "nr" + ], + "title": "Nauru" + }, + { + "type": "string", + "enum": [ + "nz" + ], + "title": "New Zealand" + }, + { + "type": "string", + "enum": [ + "om" + ], + "title": "Oman" + }, + { + "type": "string", + "enum": [ + "pk" + ], + "title": "Pakistan" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "Panama" + }, + { + "type": "string", + "enum": [ + "pe" + ], + "title": "Peru" + }, + { + "type": "string", + "enum": [ + "ph" + ], + "title": "Philippines" + }, + { + "type": "string", + "enum": [ + "pw" + ], + "title": "Palau" + }, + { + "type": "string", + "enum": [ + "pg" + ], + "title": "Papua New Guinea" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "Poland" + }, + { + "type": "string", + "enum": [ + "pf" + ], + "title": "French Polynesia" + }, + { + "type": "string", + "enum": [ + "kp" + ], + "title": "North Korea" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "Portugal" + }, + { + "type": "string", + "enum": [ + "py" + ], + "title": "Paraguay" + }, + { + "type": "string", + "enum": [ + "qa" + ], + "title": "Qatar" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "Romania" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "Russia" + }, + { + "type": "string", + "enum": [ + "rw" + ], + "title": "Rwanda" + }, + { + "type": "string", + "enum": [ + "sa" + ], + "title": "Saudi Arabia" + }, + { + "type": "string", + "enum": [ + "sd" + ], + "title": "Sudan" + }, + { + "type": "string", + "enum": [ + "sn" + ], + "title": "Senegal" + }, + { + "type": "string", + "enum": [ + "sg" + ], + "title": "Singapore" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "Solomon Islands" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "Sierra Leone" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "El Salvador" + }, + { + "type": "string", + "enum": [ + "sm" + ], + "title": "San Marino" + }, + { + "type": "string", + "enum": [ + "so" + ], + "title": "Somalia" + }, + { + "type": "string", + "enum": [ + "rs" + ], + "title": "Serbia" + }, + { + "type": "string", + "enum": [ + "ss" + ], + "title": "South Sudan" + }, + { + "type": "string", + "enum": [ + "st" + ], + "title": "Sao Tome and Principe" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "Suriname" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "Slovakia" + }, + { + "type": "string", + "enum": [ + "si" + ], + "title": "Slovenia" + }, + { + "type": "string", + "enum": [ + "se" + ], + "title": "Sweden" + }, + { + "type": "string", + "enum": [ + "sz" + ], + "title": "Eswatini" + }, + { + "type": "string", + "enum": [ + "sc" + ], + "title": "Seychelles" + }, + { + "type": "string", + "enum": [ + "sy" + ], + "title": "Syria" + }, + { + "type": "string", + "enum": [ + "td" + ], + "title": "Chad" + }, + { + "type": "string", + "enum": [ + "tg" + ], + "title": "Togo" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "Thailand" + }, + { + "type": "string", + "enum": [ + "tj" + ], + "title": "Tajikistan" + }, + { + "type": "string", + "enum": [ + "tm" + ], + "title": "Turkmenistan" + }, + { + "type": "string", + "enum": [ + "tl" + ], + "title": "Timor-Leste" + }, + { + "type": "string", + "enum": [ + "to" + ], + "title": "Tonga" + }, + { + "type": "string", + "enum": [ + "tt" + ], + "title": "Trinidad and Tobago" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "Tunisia" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "Turkey" + }, + { + "type": "string", + "enum": [ + "tv" + ], + "title": "Tuvalu" + }, + { + "type": "string", + "enum": [ + "tz" + ], + "title": "Tanzania" + }, + { + "type": "string", + "enum": [ + "ug" + ], + "title": "Uganda" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "Ukraine" + }, + { + "type": "string", + "enum": [ + "uy" + ], + "title": "Uruguay" + }, + { + "type": "string", + "enum": [ + "us" + ], + "title": "United States" + }, + { + "type": "string", + "enum": [ + "uz" + ], + "title": "Uzbekistan" + }, + { + "type": "string", + "enum": [ + "va" + ], + "title": "Vatican City" + }, + { + "type": "string", + "enum": [ + "vc" + ], + "title": "Saint Vincent and the Grenadines" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "Venezuela" + }, + { + "type": "string", + "enum": [ + "vn" + ], + "title": "Vietnam" + }, + { + "type": "string", + "enum": [ + "vu" + ], + "title": "Vanuatu" + }, + { + "type": "string", + "enum": [ + "ws" + ], + "title": "Samoa" + }, + { + "type": "string", + "enum": [ + "ye" + ], + "title": "Yemen" + }, + { + "type": "string", + "enum": [ + "za" + ], + "title": "South Africa" + }, + { + "type": "string", + "enum": [ + "zm" + ], + "title": "Zambia" + }, + { + "type": "string", + "enum": [ + "zw" + ], + "title": "Zimbabwe" + } + ] + }, + "in": "path" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/image": { + "get": { + "summary": "Get image from URL", + "operationId": "avatarsGetImage", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 400x400px.\n\nThis endpoint does not follow HTTP redirects.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-image.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Image URL which you want to crop.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 2000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 400 + }, + "in": "query" + } + ] + } + }, + "\/avatars\/initials": { + "get": { + "summary": "Get user initials", + "operationId": "avatarsGetInitials", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to show your user initials avatar icon on your website or app. By default, this route will try to print your logged-in user name or email initials. You can also overwrite the user name if you pass the 'name' parameter. If no name is given and no user is logged, an empty avatar will be returned.\n\nYou can use the color and background params to change the avatar colors. By default, a random theme will be selected. The random theme will persist for the user's initials when reloading the same theme will always return for the same initials.\n\nWhen one dimension is specified and the other is 0, the image is scaled with preserved aspect ratio. If both dimensions are 0, the API provides an image at source quality. If dimensions are not specified, the default size of image returned is 100x100px.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-initials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Full Name. When empty, current user name or email will be used. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + }, + { + "name": "width", + "description": "Image width. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "height", + "description": "Image height. Pass an integer between 0 to 2000. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 500 + }, + "in": "query" + }, + { + "name": "background", + "description": "Changes background color. By default a random color will be picked and stay will persistent to the given name.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/avatars\/photo": { + "get": { + "summary": "Get user photo", + "operationId": "avatarsGetPhoto", + "tags": [ + "avatars" + ], + "description": "Returns the best available profile photo for a user. The endpoint tries each source in priority order and returns the first successful result: a custom uploaded photo (see avatars.updatePhoto), OAuth2 identity photo, Gravatar, Libravatar, Appwrite Initials, built-in static fallback.\n\nPassing `userId` \u2014 `current()` for the authenticated user \u2014 resolves the photo from everything known about that user: identity photos, email, and name. An explicit `emailHash` or `name` then overrides just that value, and the user's remaining sources stay in the chain. Without `userId`, passing `emailHash` and\/or `name` resolves the avatar from those values alone: the hash is looked up on Gravatar and Libravatar, the name is rendered as initials, and the session user stays out of the chain so their own photo never shadows the avatar being asked for. When nothing is passed, the photo resolves for the currently authenticated user. Emails are only ever accepted pre-hashed, so no address ends up in a URL.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-photo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "width", + "description": "Output image width in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height in pixels. Pass an integer between 0 and 2000. Defaults to 256.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 256 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Output image quality between 0 and 100. Defaults to 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 100 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output image format. Defaults to 'png'.", + "required": false, + "schema": { + "type": "string", + "example": "png", + "default": "png" + }, + "in": "query" + }, + { + "name": "rating", + "description": "Maximum image rating to fetch from Gravatar\/Libravatar. Defaults to 'g'.", + "required": false, + "schema": { + "type": "string", + "example": "g", + "default": "g" + }, + "in": "query" + }, + { + "name": "userId", + "description": "User ID to resolve the photo for. Pass 'current()' for the currently authenticated user. When omitted, the session user is used only if no emailHash and no name is passed.", + "required": false, + "schema": { + "type": "string", + "example": "current()", + "default": "" + }, + "in": "query" + }, + { + "name": "emailHash", + "description": "SHA256 hash of the lowercase, trimmed email address to look up on Gravatar and Libravatar instead of the user's own email. Pass the hash, never the address itself.", + "required": false, + "schema": { + "type": "string", + "example": "<EMAIL_HASH>", + "default": "" + }, + "in": "query" + }, + { + "name": "name", + "description": "Name to render initials from instead of the user's own name. Max length: 128 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<NAME>", + "default": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Update photo", + "operationId": "avatarsUpdatePhoto", + "tags": [ + "avatars" + ], + "description": "Update the profile photo of the currently authenticated user. The uploaded image takes priority over every other photo source, including OAuth2 identity photos, Gravatar, and Libravatar. Updating an already customized photo replaces it. The image must be at most 5MB and is sent in a single request.", + "responses": { + "200": { + "description": "Account", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/account" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/update-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "file": { + "description": "Binary image file of at most 5MB. Allowed file types are png, jpg, jpeg, and webp.", + "type": "string", + "format": "binary" + } + }, + "required": [ + "file" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete photo", + "operationId": "avatarsDeletePhoto", + "tags": [ + "avatars" + ], + "description": "Delete the profile photo of the currently authenticated user and store the built-in static placeholder in its place. The placeholder is the user's photo from then on, so it takes priority over every other photo source \u2014 OAuth2 identity photos, Gravatar, Libravatar, and initials \u2014 until a new photo is uploaded with avatars.updatePhoto.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/delete-photo.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "avatars.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/avatars\/qr": { + "get": { + "summary": "Get QR code", + "operationId": "avatarsGetQR", + "tags": [ + "avatars" + ], + "description": "Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image.\n", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-qr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "text", + "description": "Plain text to be converted to QR code image.", + "required": true, + "schema": { + "type": "string", + "example": "<TEXT>" + }, + "in": "query" + }, + { + "name": "size", + "description": "QR code size. Pass an integer between 1 to 1000. Defaults to 400.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 400 + }, + "in": "query" + }, + { + "name": "margin", + "description": "Margin from edge. Pass an integer between 0 to 10. Defaults to 1.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "download", + "description": "Return resulting image with 'Content-Disposition: attachment ' headers for the browser to start downloading it. Pass 0 for no header, or 1 for otherwise. Default value is set to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": false + }, + "in": "query" + } + ] + } + }, + "\/avatars\/screenshots": { + "get": { + "summary": "Get webpage screenshot", + "operationId": "avatarsGetScreenshot", + "tags": [ + "avatars" + ], + "description": "Use this endpoint to capture a screenshot of any website URL. This endpoint uses a headless browser to render the webpage and capture it as an image.\n\nYou can configure the browser viewport size, theme, user agent, geolocation, permissions, and more. Capture either just the viewport or the full page scroll.\n\nWhen width and height are specified, the image is resized accordingly. If both dimensions are 0, the API provides an image at original size. If dimensions are not specified, the default viewport size is 1280x720px.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/png": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "avatars\/get-screenshot.md", + "rate-limit": 60, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "avatars.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "url", + "description": "Website URL which you want to capture.", + "required": true, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com" + }, + "in": "query" + }, + { + "name": "headers", + "description": "HTTP headers to send with the browser request. Only Accept and Accept-Language are allowed. Defaults to empty.", + "required": false, + "schema": { + "type": "object", + "default": {}, + "example": { + "Accept-Language": "en-US,en;q=0.9" + } + }, + "in": "query" + }, + { + "name": "viewportWidth", + "description": "Browser viewport width. Pass an integer between 1 to 1920. Defaults to 1280.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1920, + "default": 1280 + }, + "in": "query" + }, + { + "name": "viewportHeight", + "description": "Browser viewport height. Pass an integer between 1 to 1080. Defaults to 720.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1080, + "default": 720 + }, + "in": "query" + }, + { + "name": "scale", + "description": "Browser scale factor. Pass a number between 0.1 to 3. Defaults to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 2, + "default": 1 + }, + "in": "query" + }, + { + "name": "theme", + "description": "Browser theme. Pass \"light\" or \"dark\". Defaults to \"light\".", + "required": false, + "schema": { + "type": "string", + "example": "dark", + "title": "BrowserTheme", + "oneOf": [ + { + "type": "string", + "enum": [ + "light" + ], + "title": "light" + }, + { + "type": "string", + "enum": [ + "dark" + ], + "title": "dark" + } + ], + "default": "light" + }, + "in": "query" + }, + { + "name": "userAgent", + "description": "Custom user agent string. Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "Mozilla\/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit\/605.1.15", + "default": "" + }, + "in": "query" + }, + { + "name": "fullpage", + "description": "Capture full page scroll. Pass 0 for viewport only, or 1 for full page. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "locale", + "description": "Browser locale (e.g., \"en-US\", \"fr-FR\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "en-US", + "default": "" + }, + "in": "query" + }, + { + "name": "timezone", + "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", + "required": false, + "schema": { + "type": "string", + "example": "America\/New_York", + "title": "Timezone", + "oneOf": [ + { + "type": "string", + "enum": [ + "africa\/abidjan" + ], + "title": "africa\/abidjan" + }, + { + "type": "string", + "enum": [ + "africa\/accra" + ], + "title": "africa\/accra" + }, + { + "type": "string", + "enum": [ + "africa\/addis_ababa" + ], + "title": "africa\/addis_ababa" + }, + { + "type": "string", + "enum": [ + "africa\/algiers" + ], + "title": "africa\/algiers" + }, + { + "type": "string", + "enum": [ + "africa\/asmara" + ], + "title": "africa\/asmara" + }, + { + "type": "string", + "enum": [ + "africa\/bamako" + ], + "title": "africa\/bamako" + }, + { + "type": "string", + "enum": [ + "africa\/bangui" + ], + "title": "africa\/bangui" + }, + { + "type": "string", + "enum": [ + "africa\/banjul" + ], + "title": "africa\/banjul" + }, + { + "type": "string", + "enum": [ + "africa\/bissau" + ], + "title": "africa\/bissau" + }, + { + "type": "string", + "enum": [ + "africa\/blantyre" + ], + "title": "africa\/blantyre" + }, + { + "type": "string", + "enum": [ + "africa\/brazzaville" + ], + "title": "africa\/brazzaville" + }, + { + "type": "string", + "enum": [ + "africa\/bujumbura" + ], + "title": "africa\/bujumbura" + }, + { + "type": "string", + "enum": [ + "africa\/cairo" + ], + "title": "africa\/cairo" + }, + { + "type": "string", + "enum": [ + "africa\/casablanca" + ], + "title": "africa\/casablanca" + }, + { + "type": "string", + "enum": [ + "africa\/ceuta" + ], + "title": "africa\/ceuta" + }, + { + "type": "string", + "enum": [ + "africa\/conakry" + ], + "title": "africa\/conakry" + }, + { + "type": "string", + "enum": [ + "africa\/dakar" + ], + "title": "africa\/dakar" + }, + { + "type": "string", + "enum": [ + "africa\/dar_es_salaam" + ], + "title": "africa\/dar_es_salaam" + }, + { + "type": "string", + "enum": [ + "africa\/djibouti" + ], + "title": "africa\/djibouti" + }, + { + "type": "string", + "enum": [ + "africa\/douala" + ], + "title": "africa\/douala" + }, + { + "type": "string", + "enum": [ + "africa\/el_aaiun" + ], + "title": "africa\/el_aaiun" + }, + { + "type": "string", + "enum": [ + "africa\/freetown" + ], + "title": "africa\/freetown" + }, + { + "type": "string", + "enum": [ + "africa\/gaborone" + ], + "title": "africa\/gaborone" + }, + { + "type": "string", + "enum": [ + "africa\/harare" + ], + "title": "africa\/harare" + }, + { + "type": "string", + "enum": [ + "africa\/johannesburg" + ], + "title": "africa\/johannesburg" + }, + { + "type": "string", + "enum": [ + "africa\/juba" + ], + "title": "africa\/juba" + }, + { + "type": "string", + "enum": [ + "africa\/kampala" + ], + "title": "africa\/kampala" + }, + { + "type": "string", + "enum": [ + "africa\/khartoum" + ], + "title": "africa\/khartoum" + }, + { + "type": "string", + "enum": [ + "africa\/kigali" + ], + "title": "africa\/kigali" + }, + { + "type": "string", + "enum": [ + "africa\/kinshasa" + ], + "title": "africa\/kinshasa" + }, + { + "type": "string", + "enum": [ + "africa\/lagos" + ], + "title": "africa\/lagos" + }, + { + "type": "string", + "enum": [ + "africa\/libreville" + ], + "title": "africa\/libreville" + }, + { + "type": "string", + "enum": [ + "africa\/lome" + ], + "title": "africa\/lome" + }, + { + "type": "string", + "enum": [ + "africa\/luanda" + ], + "title": "africa\/luanda" + }, + { + "type": "string", + "enum": [ + "africa\/lubumbashi" + ], + "title": "africa\/lubumbashi" + }, + { + "type": "string", + "enum": [ + "africa\/lusaka" + ], + "title": "africa\/lusaka" + }, + { + "type": "string", + "enum": [ + "africa\/malabo" + ], + "title": "africa\/malabo" + }, + { + "type": "string", + "enum": [ + "africa\/maputo" + ], + "title": "africa\/maputo" + }, + { + "type": "string", + "enum": [ + "africa\/maseru" + ], + "title": "africa\/maseru" + }, + { + "type": "string", + "enum": [ + "africa\/mbabane" + ], + "title": "africa\/mbabane" + }, + { + "type": "string", + "enum": [ + "africa\/mogadishu" + ], + "title": "africa\/mogadishu" + }, + { + "type": "string", + "enum": [ + "africa\/monrovia" + ], + "title": "africa\/monrovia" + }, + { + "type": "string", + "enum": [ + "africa\/nairobi" + ], + "title": "africa\/nairobi" + }, + { + "type": "string", + "enum": [ + "africa\/ndjamena" + ], + "title": "africa\/ndjamena" + }, + { + "type": "string", + "enum": [ + "africa\/niamey" + ], + "title": "africa\/niamey" + }, + { + "type": "string", + "enum": [ + "africa\/nouakchott" + ], + "title": "africa\/nouakchott" + }, + { + "type": "string", + "enum": [ + "africa\/ouagadougou" + ], + "title": "africa\/ouagadougou" + }, + { + "type": "string", + "enum": [ + "africa\/porto-novo" + ], + "title": "africa\/porto-novo" + }, + { + "type": "string", + "enum": [ + "africa\/sao_tome" + ], + "title": "africa\/sao_tome" + }, + { + "type": "string", + "enum": [ + "africa\/tripoli" + ], + "title": "africa\/tripoli" + }, + { + "type": "string", + "enum": [ + "africa\/tunis" + ], + "title": "africa\/tunis" + }, + { + "type": "string", + "enum": [ + "africa\/windhoek" + ], + "title": "africa\/windhoek" + }, + { + "type": "string", + "enum": [ + "america\/adak" + ], + "title": "america\/adak" + }, + { + "type": "string", + "enum": [ + "america\/anchorage" + ], + "title": "america\/anchorage" + }, + { + "type": "string", + "enum": [ + "america\/anguilla" + ], + "title": "america\/anguilla" + }, + { + "type": "string", + "enum": [ + "america\/antigua" + ], + "title": "america\/antigua" + }, + { + "type": "string", + "enum": [ + "america\/araguaina" + ], + "title": "america\/araguaina" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/buenos_aires" + ], + "title": "america\/argentina\/buenos_aires" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/catamarca" + ], + "title": "america\/argentina\/catamarca" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/cordoba" + ], + "title": "america\/argentina\/cordoba" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/jujuy" + ], + "title": "america\/argentina\/jujuy" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/la_rioja" + ], + "title": "america\/argentina\/la_rioja" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/mendoza" + ], + "title": "america\/argentina\/mendoza" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/rio_gallegos" + ], + "title": "america\/argentina\/rio_gallegos" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/salta" + ], + "title": "america\/argentina\/salta" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_juan" + ], + "title": "america\/argentina\/san_juan" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/san_luis" + ], + "title": "america\/argentina\/san_luis" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/tucuman" + ], + "title": "america\/argentina\/tucuman" + }, + { + "type": "string", + "enum": [ + "america\/argentina\/ushuaia" + ], + "title": "america\/argentina\/ushuaia" + }, + { + "type": "string", + "enum": [ + "america\/aruba" + ], + "title": "america\/aruba" + }, + { + "type": "string", + "enum": [ + "america\/asuncion" + ], + "title": "america\/asuncion" + }, + { + "type": "string", + "enum": [ + "america\/atikokan" + ], + "title": "america\/atikokan" + }, + { + "type": "string", + "enum": [ + "america\/bahia" + ], + "title": "america\/bahia" + }, + { + "type": "string", + "enum": [ + "america\/bahia_banderas" + ], + "title": "america\/bahia_banderas" + }, + { + "type": "string", + "enum": [ + "america\/barbados" + ], + "title": "america\/barbados" + }, + { + "type": "string", + "enum": [ + "america\/belem" + ], + "title": "america\/belem" + }, + { + "type": "string", + "enum": [ + "america\/belize" + ], + "title": "america\/belize" + }, + { + "type": "string", + "enum": [ + "america\/blanc-sablon" + ], + "title": "america\/blanc-sablon" + }, + { + "type": "string", + "enum": [ + "america\/boa_vista" + ], + "title": "america\/boa_vista" + }, + { + "type": "string", + "enum": [ + "america\/bogota" + ], + "title": "america\/bogota" + }, + { + "type": "string", + "enum": [ + "america\/boise" + ], + "title": "america\/boise" + }, + { + "type": "string", + "enum": [ + "america\/cambridge_bay" + ], + "title": "america\/cambridge_bay" + }, + { + "type": "string", + "enum": [ + "america\/campo_grande" + ], + "title": "america\/campo_grande" + }, + { + "type": "string", + "enum": [ + "america\/cancun" + ], + "title": "america\/cancun" + }, + { + "type": "string", + "enum": [ + "america\/caracas" + ], + "title": "america\/caracas" + }, + { + "type": "string", + "enum": [ + "america\/cayenne" + ], + "title": "america\/cayenne" + }, + { + "type": "string", + "enum": [ + "america\/cayman" + ], + "title": "america\/cayman" + }, + { + "type": "string", + "enum": [ + "america\/chicago" + ], + "title": "america\/chicago" + }, + { + "type": "string", + "enum": [ + "america\/chihuahua" + ], + "title": "america\/chihuahua" + }, + { + "type": "string", + "enum": [ + "america\/ciudad_juarez" + ], + "title": "america\/ciudad_juarez" + }, + { + "type": "string", + "enum": [ + "america\/costa_rica" + ], + "title": "america\/costa_rica" + }, + { + "type": "string", + "enum": [ + "america\/coyhaique" + ], + "title": "america\/coyhaique" + }, + { + "type": "string", + "enum": [ + "america\/creston" + ], + "title": "america\/creston" + }, + { + "type": "string", + "enum": [ + "america\/cuiaba" + ], + "title": "america\/cuiaba" + }, + { + "type": "string", + "enum": [ + "america\/curacao" + ], + "title": "america\/curacao" + }, + { + "type": "string", + "enum": [ + "america\/danmarkshavn" + ], + "title": "america\/danmarkshavn" + }, + { + "type": "string", + "enum": [ + "america\/dawson" + ], + "title": "america\/dawson" + }, + { + "type": "string", + "enum": [ + "america\/dawson_creek" + ], + "title": "america\/dawson_creek" + }, + { + "type": "string", + "enum": [ + "america\/denver" + ], + "title": "america\/denver" + }, + { + "type": "string", + "enum": [ + "america\/detroit" + ], + "title": "america\/detroit" + }, + { + "type": "string", + "enum": [ + "america\/dominica" + ], + "title": "america\/dominica" + }, + { + "type": "string", + "enum": [ + "america\/edmonton" + ], + "title": "america\/edmonton" + }, + { + "type": "string", + "enum": [ + "america\/eirunepe" + ], + "title": "america\/eirunepe" + }, + { + "type": "string", + "enum": [ + "america\/el_salvador" + ], + "title": "america\/el_salvador" + }, + { + "type": "string", + "enum": [ + "america\/fort_nelson" + ], + "title": "america\/fort_nelson" + }, + { + "type": "string", + "enum": [ + "america\/fortaleza" + ], + "title": "america\/fortaleza" + }, + { + "type": "string", + "enum": [ + "america\/glace_bay" + ], + "title": "america\/glace_bay" + }, + { + "type": "string", + "enum": [ + "america\/goose_bay" + ], + "title": "america\/goose_bay" + }, + { + "type": "string", + "enum": [ + "america\/grand_turk" + ], + "title": "america\/grand_turk" + }, + { + "type": "string", + "enum": [ + "america\/grenada" + ], + "title": "america\/grenada" + }, + { + "type": "string", + "enum": [ + "america\/guadeloupe" + ], + "title": "america\/guadeloupe" + }, + { + "type": "string", + "enum": [ + "america\/guatemala" + ], + "title": "america\/guatemala" + }, + { + "type": "string", + "enum": [ + "america\/guayaquil" + ], + "title": "america\/guayaquil" + }, + { + "type": "string", + "enum": [ + "america\/guyana" + ], + "title": "america\/guyana" + }, + { + "type": "string", + "enum": [ + "america\/halifax" + ], + "title": "america\/halifax" + }, + { + "type": "string", + "enum": [ + "america\/havana" + ], + "title": "america\/havana" + }, + { + "type": "string", + "enum": [ + "america\/hermosillo" + ], + "title": "america\/hermosillo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/indianapolis" + ], + "title": "america\/indiana\/indianapolis" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/knox" + ], + "title": "america\/indiana\/knox" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/marengo" + ], + "title": "america\/indiana\/marengo" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/petersburg" + ], + "title": "america\/indiana\/petersburg" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/tell_city" + ], + "title": "america\/indiana\/tell_city" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vevay" + ], + "title": "america\/indiana\/vevay" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/vincennes" + ], + "title": "america\/indiana\/vincennes" + }, + { + "type": "string", + "enum": [ + "america\/indiana\/winamac" + ], + "title": "america\/indiana\/winamac" + }, + { + "type": "string", + "enum": [ + "america\/inuvik" + ], + "title": "america\/inuvik" + }, + { + "type": "string", + "enum": [ + "america\/iqaluit" + ], + "title": "america\/iqaluit" + }, + { + "type": "string", + "enum": [ + "america\/jamaica" + ], + "title": "america\/jamaica" + }, + { + "type": "string", + "enum": [ + "america\/juneau" + ], + "title": "america\/juneau" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/louisville" + ], + "title": "america\/kentucky\/louisville" + }, + { + "type": "string", + "enum": [ + "america\/kentucky\/monticello" + ], + "title": "america\/kentucky\/monticello" + }, + { + "type": "string", + "enum": [ + "america\/kralendijk" + ], + "title": "america\/kralendijk" + }, + { + "type": "string", + "enum": [ + "america\/la_paz" + ], + "title": "america\/la_paz" + }, + { + "type": "string", + "enum": [ + "america\/lima" + ], + "title": "america\/lima" + }, + { + "type": "string", + "enum": [ + "america\/los_angeles" + ], + "title": "america\/los_angeles" + }, + { + "type": "string", + "enum": [ + "america\/lower_princes" + ], + "title": "america\/lower_princes" + }, + { + "type": "string", + "enum": [ + "america\/maceio" + ], + "title": "america\/maceio" + }, + { + "type": "string", + "enum": [ + "america\/managua" + ], + "title": "america\/managua" + }, + { + "type": "string", + "enum": [ + "america\/manaus" + ], + "title": "america\/manaus" + }, + { + "type": "string", + "enum": [ + "america\/marigot" + ], + "title": "america\/marigot" + }, + { + "type": "string", + "enum": [ + "america\/martinique" + ], + "title": "america\/martinique" + }, + { + "type": "string", + "enum": [ + "america\/matamoros" + ], + "title": "america\/matamoros" + }, + { + "type": "string", + "enum": [ + "america\/mazatlan" + ], + "title": "america\/mazatlan" + }, + { + "type": "string", + "enum": [ + "america\/menominee" + ], + "title": "america\/menominee" + }, + { + "type": "string", + "enum": [ + "america\/merida" + ], + "title": "america\/merida" + }, + { + "type": "string", + "enum": [ + "america\/metlakatla" + ], + "title": "america\/metlakatla" + }, + { + "type": "string", + "enum": [ + "america\/mexico_city" + ], + "title": "america\/mexico_city" + }, + { + "type": "string", + "enum": [ + "america\/miquelon" + ], + "title": "america\/miquelon" + }, + { + "type": "string", + "enum": [ + "america\/moncton" + ], + "title": "america\/moncton" + }, + { + "type": "string", + "enum": [ + "america\/monterrey" + ], + "title": "america\/monterrey" + }, + { + "type": "string", + "enum": [ + "america\/montevideo" + ], + "title": "america\/montevideo" + }, + { + "type": "string", + "enum": [ + "america\/montserrat" + ], + "title": "america\/montserrat" + }, + { + "type": "string", + "enum": [ + "america\/nassau" + ], + "title": "america\/nassau" + }, + { + "type": "string", + "enum": [ + "america\/new_york" + ], + "title": "america\/new_york" + }, + { + "type": "string", + "enum": [ + "america\/nome" + ], + "title": "america\/nome" + }, + { + "type": "string", + "enum": [ + "america\/noronha" + ], + "title": "america\/noronha" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/beulah" + ], + "title": "america\/north_dakota\/beulah" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/center" + ], + "title": "america\/north_dakota\/center" + }, + { + "type": "string", + "enum": [ + "america\/north_dakota\/new_salem" + ], + "title": "america\/north_dakota\/new_salem" + }, + { + "type": "string", + "enum": [ + "america\/nuuk" + ], + "title": "america\/nuuk" + }, + { + "type": "string", + "enum": [ + "america\/ojinaga" + ], + "title": "america\/ojinaga" + }, + { + "type": "string", + "enum": [ + "america\/panama" + ], + "title": "america\/panama" + }, + { + "type": "string", + "enum": [ + "america\/paramaribo" + ], + "title": "america\/paramaribo" + }, + { + "type": "string", + "enum": [ + "america\/phoenix" + ], + "title": "america\/phoenix" + }, + { + "type": "string", + "enum": [ + "america\/port-au-prince" + ], + "title": "america\/port-au-prince" + }, + { + "type": "string", + "enum": [ + "america\/port_of_spain" + ], + "title": "america\/port_of_spain" + }, + { + "type": "string", + "enum": [ + "america\/porto_velho" + ], + "title": "america\/porto_velho" + }, + { + "type": "string", + "enum": [ + "america\/puerto_rico" + ], + "title": "america\/puerto_rico" + }, + { + "type": "string", + "enum": [ + "america\/punta_arenas" + ], + "title": "america\/punta_arenas" + }, + { + "type": "string", + "enum": [ + "america\/rankin_inlet" + ], + "title": "america\/rankin_inlet" + }, + { + "type": "string", + "enum": [ + "america\/recife" + ], + "title": "america\/recife" + }, + { + "type": "string", + "enum": [ + "america\/regina" + ], + "title": "america\/regina" + }, + { + "type": "string", + "enum": [ + "america\/resolute" + ], + "title": "america\/resolute" + }, + { + "type": "string", + "enum": [ + "america\/rio_branco" + ], + "title": "america\/rio_branco" + }, + { + "type": "string", + "enum": [ + "america\/santarem" + ], + "title": "america\/santarem" + }, + { + "type": "string", + "enum": [ + "america\/santiago" + ], + "title": "america\/santiago" + }, + { + "type": "string", + "enum": [ + "america\/santo_domingo" + ], + "title": "america\/santo_domingo" + }, + { + "type": "string", + "enum": [ + "america\/sao_paulo" + ], + "title": "america\/sao_paulo" + }, + { + "type": "string", + "enum": [ + "america\/scoresbysund" + ], + "title": "america\/scoresbysund" + }, + { + "type": "string", + "enum": [ + "america\/sitka" + ], + "title": "america\/sitka" + }, + { + "type": "string", + "enum": [ + "america\/st_barthelemy" + ], + "title": "america\/st_barthelemy" + }, + { + "type": "string", + "enum": [ + "america\/st_johns" + ], + "title": "america\/st_johns" + }, + { + "type": "string", + "enum": [ + "america\/st_kitts" + ], + "title": "america\/st_kitts" + }, + { + "type": "string", + "enum": [ + "america\/st_lucia" + ], + "title": "america\/st_lucia" + }, + { + "type": "string", + "enum": [ + "america\/st_thomas" + ], + "title": "america\/st_thomas" + }, + { + "type": "string", + "enum": [ + "america\/st_vincent" + ], + "title": "america\/st_vincent" + }, + { + "type": "string", + "enum": [ + "america\/swift_current" + ], + "title": "america\/swift_current" + }, + { + "type": "string", + "enum": [ + "america\/tegucigalpa" + ], + "title": "america\/tegucigalpa" + }, + { + "type": "string", + "enum": [ + "america\/thule" + ], + "title": "america\/thule" + }, + { + "type": "string", + "enum": [ + "america\/tijuana" + ], + "title": "america\/tijuana" + }, + { + "type": "string", + "enum": [ + "america\/toronto" + ], + "title": "america\/toronto" + }, + { + "type": "string", + "enum": [ + "america\/tortola" + ], + "title": "america\/tortola" + }, + { + "type": "string", + "enum": [ + "america\/vancouver" + ], + "title": "america\/vancouver" + }, + { + "type": "string", + "enum": [ + "america\/whitehorse" + ], + "title": "america\/whitehorse" + }, + { + "type": "string", + "enum": [ + "america\/winnipeg" + ], + "title": "america\/winnipeg" + }, + { + "type": "string", + "enum": [ + "america\/yakutat" + ], + "title": "america\/yakutat" + }, + { + "type": "string", + "enum": [ + "antarctica\/casey" + ], + "title": "antarctica\/casey" + }, + { + "type": "string", + "enum": [ + "antarctica\/davis" + ], + "title": "antarctica\/davis" + }, + { + "type": "string", + "enum": [ + "antarctica\/dumontdurville" + ], + "title": "antarctica\/dumontdurville" + }, + { + "type": "string", + "enum": [ + "antarctica\/macquarie" + ], + "title": "antarctica\/macquarie" + }, + { + "type": "string", + "enum": [ + "antarctica\/mawson" + ], + "title": "antarctica\/mawson" + }, + { + "type": "string", + "enum": [ + "antarctica\/mcmurdo" + ], + "title": "antarctica\/mcmurdo" + }, + { + "type": "string", + "enum": [ + "antarctica\/palmer" + ], + "title": "antarctica\/palmer" + }, + { + "type": "string", + "enum": [ + "antarctica\/rothera" + ], + "title": "antarctica\/rothera" + }, + { + "type": "string", + "enum": [ + "antarctica\/syowa" + ], + "title": "antarctica\/syowa" + }, + { + "type": "string", + "enum": [ + "antarctica\/troll" + ], + "title": "antarctica\/troll" + }, + { + "type": "string", + "enum": [ + "antarctica\/vostok" + ], + "title": "antarctica\/vostok" + }, + { + "type": "string", + "enum": [ + "arctic\/longyearbyen" + ], + "title": "arctic\/longyearbyen" + }, + { + "type": "string", + "enum": [ + "asia\/aden" + ], + "title": "asia\/aden" + }, + { + "type": "string", + "enum": [ + "asia\/almaty" + ], + "title": "asia\/almaty" + }, + { + "type": "string", + "enum": [ + "asia\/amman" + ], + "title": "asia\/amman" + }, + { + "type": "string", + "enum": [ + "asia\/anadyr" + ], + "title": "asia\/anadyr" + }, + { + "type": "string", + "enum": [ + "asia\/aqtau" + ], + "title": "asia\/aqtau" + }, + { + "type": "string", + "enum": [ + "asia\/aqtobe" + ], + "title": "asia\/aqtobe" + }, + { + "type": "string", + "enum": [ + "asia\/ashgabat" + ], + "title": "asia\/ashgabat" + }, + { + "type": "string", + "enum": [ + "asia\/atyrau" + ], + "title": "asia\/atyrau" + }, + { + "type": "string", + "enum": [ + "asia\/baghdad" + ], + "title": "asia\/baghdad" + }, + { + "type": "string", + "enum": [ + "asia\/bahrain" + ], + "title": "asia\/bahrain" + }, + { + "type": "string", + "enum": [ + "asia\/baku" + ], + "title": "asia\/baku" + }, + { + "type": "string", + "enum": [ + "asia\/bangkok" + ], + "title": "asia\/bangkok" + }, + { + "type": "string", + "enum": [ + "asia\/barnaul" + ], + "title": "asia\/barnaul" + }, + { + "type": "string", + "enum": [ + "asia\/beirut" + ], + "title": "asia\/beirut" + }, + { + "type": "string", + "enum": [ + "asia\/bishkek" + ], + "title": "asia\/bishkek" + }, + { + "type": "string", + "enum": [ + "asia\/brunei" + ], + "title": "asia\/brunei" + }, + { + "type": "string", + "enum": [ + "asia\/chita" + ], + "title": "asia\/chita" + }, + { + "type": "string", + "enum": [ + "asia\/colombo" + ], + "title": "asia\/colombo" + }, + { + "type": "string", + "enum": [ + "asia\/damascus" + ], + "title": "asia\/damascus" + }, + { + "type": "string", + "enum": [ + "asia\/dhaka" + ], + "title": "asia\/dhaka" + }, + { + "type": "string", + "enum": [ + "asia\/dili" + ], + "title": "asia\/dili" + }, + { + "type": "string", + "enum": [ + "asia\/dubai" + ], + "title": "asia\/dubai" + }, + { + "type": "string", + "enum": [ + "asia\/dushanbe" + ], + "title": "asia\/dushanbe" + }, + { + "type": "string", + "enum": [ + "asia\/famagusta" + ], + "title": "asia\/famagusta" + }, + { + "type": "string", + "enum": [ + "asia\/gaza" + ], + "title": "asia\/gaza" + }, + { + "type": "string", + "enum": [ + "asia\/hebron" + ], + "title": "asia\/hebron" + }, + { + "type": "string", + "enum": [ + "asia\/ho_chi_minh" + ], + "title": "asia\/ho_chi_minh" + }, + { + "type": "string", + "enum": [ + "asia\/hong_kong" + ], + "title": "asia\/hong_kong" + }, + { + "type": "string", + "enum": [ + "asia\/hovd" + ], + "title": "asia\/hovd" + }, + { + "type": "string", + "enum": [ + "asia\/irkutsk" + ], + "title": "asia\/irkutsk" + }, + { + "type": "string", + "enum": [ + "asia\/jakarta" + ], + "title": "asia\/jakarta" + }, + { + "type": "string", + "enum": [ + "asia\/jayapura" + ], + "title": "asia\/jayapura" + }, + { + "type": "string", + "enum": [ + "asia\/jerusalem" + ], + "title": "asia\/jerusalem" + }, + { + "type": "string", + "enum": [ + "asia\/kabul" + ], + "title": "asia\/kabul" + }, + { + "type": "string", + "enum": [ + "asia\/kamchatka" + ], + "title": "asia\/kamchatka" + }, + { + "type": "string", + "enum": [ + "asia\/karachi" + ], + "title": "asia\/karachi" + }, + { + "type": "string", + "enum": [ + "asia\/kathmandu" + ], + "title": "asia\/kathmandu" + }, + { + "type": "string", + "enum": [ + "asia\/khandyga" + ], + "title": "asia\/khandyga" + }, + { + "type": "string", + "enum": [ + "asia\/kolkata" + ], + "title": "asia\/kolkata" + }, + { + "type": "string", + "enum": [ + "asia\/krasnoyarsk" + ], + "title": "asia\/krasnoyarsk" + }, + { + "type": "string", + "enum": [ + "asia\/kuala_lumpur" + ], + "title": "asia\/kuala_lumpur" + }, + { + "type": "string", + "enum": [ + "asia\/kuching" + ], + "title": "asia\/kuching" + }, + { + "type": "string", + "enum": [ + "asia\/kuwait" + ], + "title": "asia\/kuwait" + }, + { + "type": "string", + "enum": [ + "asia\/macau" + ], + "title": "asia\/macau" + }, + { + "type": "string", + "enum": [ + "asia\/magadan" + ], + "title": "asia\/magadan" + }, + { + "type": "string", + "enum": [ + "asia\/makassar" + ], + "title": "asia\/makassar" + }, + { + "type": "string", + "enum": [ + "asia\/manila" + ], + "title": "asia\/manila" + }, + { + "type": "string", + "enum": [ + "asia\/muscat" + ], + "title": "asia\/muscat" + }, + { + "type": "string", + "enum": [ + "asia\/nicosia" + ], + "title": "asia\/nicosia" + }, + { + "type": "string", + "enum": [ + "asia\/novokuznetsk" + ], + "title": "asia\/novokuznetsk" + }, + { + "type": "string", + "enum": [ + "asia\/novosibirsk" + ], + "title": "asia\/novosibirsk" + }, + { + "type": "string", + "enum": [ + "asia\/omsk" + ], + "title": "asia\/omsk" + }, + { + "type": "string", + "enum": [ + "asia\/oral" + ], + "title": "asia\/oral" + }, + { + "type": "string", + "enum": [ + "asia\/phnom_penh" + ], + "title": "asia\/phnom_penh" + }, + { + "type": "string", + "enum": [ + "asia\/pontianak" + ], + "title": "asia\/pontianak" + }, + { + "type": "string", + "enum": [ + "asia\/pyongyang" + ], + "title": "asia\/pyongyang" + }, + { + "type": "string", + "enum": [ + "asia\/qatar" + ], + "title": "asia\/qatar" + }, + { + "type": "string", + "enum": [ + "asia\/qostanay" + ], + "title": "asia\/qostanay" + }, + { + "type": "string", + "enum": [ + "asia\/qyzylorda" + ], + "title": "asia\/qyzylorda" + }, + { + "type": "string", + "enum": [ + "asia\/riyadh" + ], + "title": "asia\/riyadh" + }, + { + "type": "string", + "enum": [ + "asia\/sakhalin" + ], + "title": "asia\/sakhalin" + }, + { + "type": "string", + "enum": [ + "asia\/samarkand" + ], + "title": "asia\/samarkand" + }, + { + "type": "string", + "enum": [ + "asia\/seoul" + ], + "title": "asia\/seoul" + }, + { + "type": "string", + "enum": [ + "asia\/shanghai" + ], + "title": "asia\/shanghai" + }, + { + "type": "string", + "enum": [ + "asia\/singapore" + ], + "title": "asia\/singapore" + }, + { + "type": "string", + "enum": [ + "asia\/srednekolymsk" + ], + "title": "asia\/srednekolymsk" + }, + { + "type": "string", + "enum": [ + "asia\/taipei" + ], + "title": "asia\/taipei" + }, + { + "type": "string", + "enum": [ + "asia\/tashkent" + ], + "title": "asia\/tashkent" + }, + { + "type": "string", + "enum": [ + "asia\/tbilisi" + ], + "title": "asia\/tbilisi" + }, + { + "type": "string", + "enum": [ + "asia\/tehran" + ], + "title": "asia\/tehran" + }, + { + "type": "string", + "enum": [ + "asia\/thimphu" + ], + "title": "asia\/thimphu" + }, + { + "type": "string", + "enum": [ + "asia\/tokyo" + ], + "title": "asia\/tokyo" + }, + { + "type": "string", + "enum": [ + "asia\/tomsk" + ], + "title": "asia\/tomsk" + }, + { + "type": "string", + "enum": [ + "asia\/ulaanbaatar" + ], + "title": "asia\/ulaanbaatar" + }, + { + "type": "string", + "enum": [ + "asia\/urumqi" + ], + "title": "asia\/urumqi" + }, + { + "type": "string", + "enum": [ + "asia\/ust-nera" + ], + "title": "asia\/ust-nera" + }, + { + "type": "string", + "enum": [ + "asia\/vientiane" + ], + "title": "asia\/vientiane" + }, + { + "type": "string", + "enum": [ + "asia\/vladivostok" + ], + "title": "asia\/vladivostok" + }, + { + "type": "string", + "enum": [ + "asia\/yakutsk" + ], + "title": "asia\/yakutsk" + }, + { + "type": "string", + "enum": [ + "asia\/yangon" + ], + "title": "asia\/yangon" + }, + { + "type": "string", + "enum": [ + "asia\/yekaterinburg" + ], + "title": "asia\/yekaterinburg" + }, + { + "type": "string", + "enum": [ + "asia\/yerevan" + ], + "title": "asia\/yerevan" + }, + { + "type": "string", + "enum": [ + "atlantic\/azores" + ], + "title": "atlantic\/azores" + }, + { + "type": "string", + "enum": [ + "atlantic\/bermuda" + ], + "title": "atlantic\/bermuda" + }, + { + "type": "string", + "enum": [ + "atlantic\/canary" + ], + "title": "atlantic\/canary" + }, + { + "type": "string", + "enum": [ + "atlantic\/cape_verde" + ], + "title": "atlantic\/cape_verde" + }, + { + "type": "string", + "enum": [ + "atlantic\/faroe" + ], + "title": "atlantic\/faroe" + }, + { + "type": "string", + "enum": [ + "atlantic\/madeira" + ], + "title": "atlantic\/madeira" + }, + { + "type": "string", + "enum": [ + "atlantic\/reykjavik" + ], + "title": "atlantic\/reykjavik" + }, + { + "type": "string", + "enum": [ + "atlantic\/south_georgia" + ], + "title": "atlantic\/south_georgia" + }, + { + "type": "string", + "enum": [ + "atlantic\/st_helena" + ], + "title": "atlantic\/st_helena" + }, + { + "type": "string", + "enum": [ + "atlantic\/stanley" + ], + "title": "atlantic\/stanley" + }, + { + "type": "string", + "enum": [ + "australia\/adelaide" + ], + "title": "australia\/adelaide" + }, + { + "type": "string", + "enum": [ + "australia\/brisbane" + ], + "title": "australia\/brisbane" + }, + { + "type": "string", + "enum": [ + "australia\/broken_hill" + ], + "title": "australia\/broken_hill" + }, + { + "type": "string", + "enum": [ + "australia\/darwin" + ], + "title": "australia\/darwin" + }, + { + "type": "string", + "enum": [ + "australia\/eucla" + ], + "title": "australia\/eucla" + }, + { + "type": "string", + "enum": [ + "australia\/hobart" + ], + "title": "australia\/hobart" + }, + { + "type": "string", + "enum": [ + "australia\/lindeman" + ], + "title": "australia\/lindeman" + }, + { + "type": "string", + "enum": [ + "australia\/lord_howe" + ], + "title": "australia\/lord_howe" + }, + { + "type": "string", + "enum": [ + "australia\/melbourne" + ], + "title": "australia\/melbourne" + }, + { + "type": "string", + "enum": [ + "australia\/perth" + ], + "title": "australia\/perth" + }, + { + "type": "string", + "enum": [ + "australia\/sydney" + ], + "title": "australia\/sydney" + }, + { + "type": "string", + "enum": [ + "europe\/amsterdam" + ], + "title": "europe\/amsterdam" + }, + { + "type": "string", + "enum": [ + "europe\/andorra" + ], + "title": "europe\/andorra" + }, + { + "type": "string", + "enum": [ + "europe\/astrakhan" + ], + "title": "europe\/astrakhan" + }, + { + "type": "string", + "enum": [ + "europe\/athens" + ], + "title": "europe\/athens" + }, + { + "type": "string", + "enum": [ + "europe\/belgrade" + ], + "title": "europe\/belgrade" + }, + { + "type": "string", + "enum": [ + "europe\/berlin" + ], + "title": "europe\/berlin" + }, + { + "type": "string", + "enum": [ + "europe\/bratislava" + ], + "title": "europe\/bratislava" + }, + { + "type": "string", + "enum": [ + "europe\/brussels" + ], + "title": "europe\/brussels" + }, + { + "type": "string", + "enum": [ + "europe\/bucharest" + ], + "title": "europe\/bucharest" + }, + { + "type": "string", + "enum": [ + "europe\/budapest" + ], + "title": "europe\/budapest" + }, + { + "type": "string", + "enum": [ + "europe\/busingen" + ], + "title": "europe\/busingen" + }, + { + "type": "string", + "enum": [ + "europe\/chisinau" + ], + "title": "europe\/chisinau" + }, + { + "type": "string", + "enum": [ + "europe\/copenhagen" + ], + "title": "europe\/copenhagen" + }, + { + "type": "string", + "enum": [ + "europe\/dublin" + ], + "title": "europe\/dublin" + }, + { + "type": "string", + "enum": [ + "europe\/gibraltar" + ], + "title": "europe\/gibraltar" + }, + { + "type": "string", + "enum": [ + "europe\/guernsey" + ], + "title": "europe\/guernsey" + }, + { + "type": "string", + "enum": [ + "europe\/helsinki" + ], + "title": "europe\/helsinki" + }, + { + "type": "string", + "enum": [ + "europe\/isle_of_man" + ], + "title": "europe\/isle_of_man" + }, + { + "type": "string", + "enum": [ + "europe\/istanbul" + ], + "title": "europe\/istanbul" + }, + { + "type": "string", + "enum": [ + "europe\/jersey" + ], + "title": "europe\/jersey" + }, + { + "type": "string", + "enum": [ + "europe\/kaliningrad" + ], + "title": "europe\/kaliningrad" + }, + { + "type": "string", + "enum": [ + "europe\/kirov" + ], + "title": "europe\/kirov" + }, + { + "type": "string", + "enum": [ + "europe\/kyiv" + ], + "title": "europe\/kyiv" + }, + { + "type": "string", + "enum": [ + "europe\/lisbon" + ], + "title": "europe\/lisbon" + }, + { + "type": "string", + "enum": [ + "europe\/ljubljana" + ], + "title": "europe\/ljubljana" + }, + { + "type": "string", + "enum": [ + "europe\/london" + ], + "title": "europe\/london" + }, + { + "type": "string", + "enum": [ + "europe\/luxembourg" + ], + "title": "europe\/luxembourg" + }, + { + "type": "string", + "enum": [ + "europe\/madrid" + ], + "title": "europe\/madrid" + }, + { + "type": "string", + "enum": [ + "europe\/malta" + ], + "title": "europe\/malta" + }, + { + "type": "string", + "enum": [ + "europe\/mariehamn" + ], + "title": "europe\/mariehamn" + }, + { + "type": "string", + "enum": [ + "europe\/minsk" + ], + "title": "europe\/minsk" + }, + { + "type": "string", + "enum": [ + "europe\/monaco" + ], + "title": "europe\/monaco" + }, + { + "type": "string", + "enum": [ + "europe\/moscow" + ], + "title": "europe\/moscow" + }, + { + "type": "string", + "enum": [ + "europe\/oslo" + ], + "title": "europe\/oslo" + }, + { + "type": "string", + "enum": [ + "europe\/paris" + ], + "title": "europe\/paris" + }, + { + "type": "string", + "enum": [ + "europe\/podgorica" + ], + "title": "europe\/podgorica" + }, + { + "type": "string", + "enum": [ + "europe\/prague" + ], + "title": "europe\/prague" + }, + { + "type": "string", + "enum": [ + "europe\/riga" + ], + "title": "europe\/riga" + }, + { + "type": "string", + "enum": [ + "europe\/rome" + ], + "title": "europe\/rome" + }, + { + "type": "string", + "enum": [ + "europe\/samara" + ], + "title": "europe\/samara" + }, + { + "type": "string", + "enum": [ + "europe\/san_marino" + ], + "title": "europe\/san_marino" + }, + { + "type": "string", + "enum": [ + "europe\/sarajevo" + ], + "title": "europe\/sarajevo" + }, + { + "type": "string", + "enum": [ + "europe\/saratov" + ], + "title": "europe\/saratov" + }, + { + "type": "string", + "enum": [ + "europe\/simferopol" + ], + "title": "europe\/simferopol" + }, + { + "type": "string", + "enum": [ + "europe\/skopje" + ], + "title": "europe\/skopje" + }, + { + "type": "string", + "enum": [ + "europe\/sofia" + ], + "title": "europe\/sofia" + }, + { + "type": "string", + "enum": [ + "europe\/stockholm" + ], + "title": "europe\/stockholm" + }, + { + "type": "string", + "enum": [ + "europe\/tallinn" + ], + "title": "europe\/tallinn" + }, + { + "type": "string", + "enum": [ + "europe\/tirane" + ], + "title": "europe\/tirane" + }, + { + "type": "string", + "enum": [ + "europe\/ulyanovsk" + ], + "title": "europe\/ulyanovsk" + }, + { + "type": "string", + "enum": [ + "europe\/vaduz" + ], + "title": "europe\/vaduz" + }, + { + "type": "string", + "enum": [ + "europe\/vatican" + ], + "title": "europe\/vatican" + }, + { + "type": "string", + "enum": [ + "europe\/vienna" + ], + "title": "europe\/vienna" + }, + { + "type": "string", + "enum": [ + "europe\/vilnius" + ], + "title": "europe\/vilnius" + }, + { + "type": "string", + "enum": [ + "europe\/volgograd" + ], + "title": "europe\/volgograd" + }, + { + "type": "string", + "enum": [ + "europe\/warsaw" + ], + "title": "europe\/warsaw" + }, + { + "type": "string", + "enum": [ + "europe\/zagreb" + ], + "title": "europe\/zagreb" + }, + { + "type": "string", + "enum": [ + "europe\/zurich" + ], + "title": "europe\/zurich" + }, + { + "type": "string", + "enum": [ + "indian\/antananarivo" + ], + "title": "indian\/antananarivo" + }, + { + "type": "string", + "enum": [ + "indian\/chagos" + ], + "title": "indian\/chagos" + }, + { + "type": "string", + "enum": [ + "indian\/christmas" + ], + "title": "indian\/christmas" + }, + { + "type": "string", + "enum": [ + "indian\/cocos" + ], + "title": "indian\/cocos" + }, + { + "type": "string", + "enum": [ + "indian\/comoro" + ], + "title": "indian\/comoro" + }, + { + "type": "string", + "enum": [ + "indian\/kerguelen" + ], + "title": "indian\/kerguelen" + }, + { + "type": "string", + "enum": [ + "indian\/mahe" + ], + "title": "indian\/mahe" + }, + { + "type": "string", + "enum": [ + "indian\/maldives" + ], + "title": "indian\/maldives" + }, + { + "type": "string", + "enum": [ + "indian\/mauritius" + ], + "title": "indian\/mauritius" + }, + { + "type": "string", + "enum": [ + "indian\/mayotte" + ], + "title": "indian\/mayotte" + }, + { + "type": "string", + "enum": [ + "indian\/reunion" + ], + "title": "indian\/reunion" + }, + { + "type": "string", + "enum": [ + "pacific\/apia" + ], + "title": "pacific\/apia" + }, + { + "type": "string", + "enum": [ + "pacific\/auckland" + ], + "title": "pacific\/auckland" + }, + { + "type": "string", + "enum": [ + "pacific\/bougainville" + ], + "title": "pacific\/bougainville" + }, + { + "type": "string", + "enum": [ + "pacific\/chatham" + ], + "title": "pacific\/chatham" + }, + { + "type": "string", + "enum": [ + "pacific\/chuuk" + ], + "title": "pacific\/chuuk" + }, + { + "type": "string", + "enum": [ + "pacific\/easter" + ], + "title": "pacific\/easter" + }, + { + "type": "string", + "enum": [ + "pacific\/efate" + ], + "title": "pacific\/efate" + }, + { + "type": "string", + "enum": [ + "pacific\/fakaofo" + ], + "title": "pacific\/fakaofo" + }, + { + "type": "string", + "enum": [ + "pacific\/fiji" + ], + "title": "pacific\/fiji" + }, + { + "type": "string", + "enum": [ + "pacific\/funafuti" + ], + "title": "pacific\/funafuti" + }, + { + "type": "string", + "enum": [ + "pacific\/galapagos" + ], + "title": "pacific\/galapagos" + }, + { + "type": "string", + "enum": [ + "pacific\/gambier" + ], + "title": "pacific\/gambier" + }, + { + "type": "string", + "enum": [ + "pacific\/guadalcanal" + ], + "title": "pacific\/guadalcanal" + }, + { + "type": "string", + "enum": [ + "pacific\/guam" + ], + "title": "pacific\/guam" + }, + { + "type": "string", + "enum": [ + "pacific\/honolulu" + ], + "title": "pacific\/honolulu" + }, + { + "type": "string", + "enum": [ + "pacific\/kanton" + ], + "title": "pacific\/kanton" + }, + { + "type": "string", + "enum": [ + "pacific\/kiritimati" + ], + "title": "pacific\/kiritimati" + }, + { + "type": "string", + "enum": [ + "pacific\/kosrae" + ], + "title": "pacific\/kosrae" + }, + { + "type": "string", + "enum": [ + "pacific\/kwajalein" + ], + "title": "pacific\/kwajalein" + }, + { + "type": "string", + "enum": [ + "pacific\/majuro" + ], + "title": "pacific\/majuro" + }, + { + "type": "string", + "enum": [ + "pacific\/marquesas" + ], + "title": "pacific\/marquesas" + }, + { + "type": "string", + "enum": [ + "pacific\/midway" + ], + "title": "pacific\/midway" + }, + { + "type": "string", + "enum": [ + "pacific\/nauru" + ], + "title": "pacific\/nauru" + }, + { + "type": "string", + "enum": [ + "pacific\/niue" + ], + "title": "pacific\/niue" + }, + { + "type": "string", + "enum": [ + "pacific\/norfolk" + ], + "title": "pacific\/norfolk" + }, + { + "type": "string", + "enum": [ + "pacific\/noumea" + ], + "title": "pacific\/noumea" + }, + { + "type": "string", + "enum": [ + "pacific\/pago_pago" + ], + "title": "pacific\/pago_pago" + }, + { + "type": "string", + "enum": [ + "pacific\/palau" + ], + "title": "pacific\/palau" + }, + { + "type": "string", + "enum": [ + "pacific\/pitcairn" + ], + "title": "pacific\/pitcairn" + }, + { + "type": "string", + "enum": [ + "pacific\/pohnpei" + ], + "title": "pacific\/pohnpei" + }, + { + "type": "string", + "enum": [ + "pacific\/port_moresby" + ], + "title": "pacific\/port_moresby" + }, + { + "type": "string", + "enum": [ + "pacific\/rarotonga" + ], + "title": "pacific\/rarotonga" + }, + { + "type": "string", + "enum": [ + "pacific\/saipan" + ], + "title": "pacific\/saipan" + }, + { + "type": "string", + "enum": [ + "pacific\/tahiti" + ], + "title": "pacific\/tahiti" + }, + { + "type": "string", + "enum": [ + "pacific\/tarawa" + ], + "title": "pacific\/tarawa" + }, + { + "type": "string", + "enum": [ + "pacific\/tongatapu" + ], + "title": "pacific\/tongatapu" + }, + { + "type": "string", + "enum": [ + "pacific\/wake" + ], + "title": "pacific\/wake" + }, + { + "type": "string", + "enum": [ + "pacific\/wallis" + ], + "title": "pacific\/wallis" + }, + { + "type": "string", + "enum": [ + "utc" + ], + "title": "utc" + } + ] + }, + "in": "query" + }, + { + "name": "latitude", + "description": "Geolocation latitude. Pass a number between -90 to 90. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 37.7749, + "default": 0 + }, + "in": "query" + }, + { + "name": "longitude", + "description": "Geolocation longitude. Pass a number between -180 to 180. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": -122.4194, + "default": 0 + }, + "in": "query" + }, + { + "name": "accuracy", + "description": "Geolocation accuracy in meters. Pass a number between 0 to 100000. Defaults to 0.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 100, + "default": 0 + }, + "in": "query" + }, + { + "name": "touch", + "description": "Enable touch support. Pass 0 for no touch, or 1 for touch enabled. Defaults to 0.", + "required": false, + "schema": { + "type": "boolean", + "example": true, + "default": false + }, + "in": "query" + }, + { + "name": "permissions", + "description": "Browser permissions to grant. Pass an array of permission names like [\"geolocation\", \"camera\", \"microphone\"]. Defaults to empty.", + "required": false, + "schema": { + "type": "array", + "items": { + "title": "BrowserPermission", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "geolocation" + ], + "title": "geolocation" + }, + { + "type": "string", + "enum": [ + "camera" + ], + "title": "camera" + }, + { + "type": "string", + "enum": [ + "microphone" + ], + "title": "microphone" + }, + { + "type": "string", + "enum": [ + "notifications" + ], + "title": "notifications" + }, + { + "type": "string", + "enum": [ + "midi" + ], + "title": "midi" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + }, + { + "type": "string", + "enum": [ + "clipboard-read" + ], + "title": "clipboard-read" + }, + { + "type": "string", + "enum": [ + "clipboard-write" + ], + "title": "clipboard-write" + }, + { + "type": "string", + "enum": [ + "payment-handler" + ], + "title": "payment-handler" + }, + { + "type": "string", + "enum": [ + "usb" + ], + "title": "usb" + }, + { + "type": "string", + "enum": [ + "bluetooth" + ], + "title": "bluetooth" + }, + { + "type": "string", + "enum": [ + "accelerometer" + ], + "title": "accelerometer" + }, + { + "type": "string", + "enum": [ + "gyroscope" + ], + "title": "gyroscope" + }, + { + "type": "string", + "enum": [ + "magnetometer" + ], + "title": "magnetometer" + }, + { + "type": "string", + "enum": [ + "ambient-light-sensor" + ], + "title": "ambient-light-sensor" + }, + { + "type": "string", + "enum": [ + "background-sync" + ], + "title": "background-sync" + }, + { + "type": "string", + "enum": [ + "persistent-storage" + ], + "title": "persistent-storage" + }, + { + "type": "string", + "enum": [ + "screen-wake-lock" + ], + "title": "screen-wake-lock" + }, + { + "type": "string", + "enum": [ + "web-share" + ], + "title": "web-share" + }, + { + "type": "string", + "enum": [ + "xr-spatial-tracking" + ], + "title": "xr-spatial-tracking" + } + ] + }, + "example": [ + "geolocation", + "notifications" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "sleep", + "description": "Wait time in seconds before taking the screenshot. Pass an integer between 0 to 10. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 3, + "default": 0 + }, + "in": "query" + }, + { + "name": "width", + "description": "Output image width. Pass 0 to use original width, or an integer between 1 to 2000. Defaults to 0 (original width).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 800, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Output image height. Pass 0 to use original height, or an integer between 1 to 2000. Defaults to 0 (original height).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 600, + "default": 0 + }, + "in": "query" + }, + { + "name": "quality", + "description": "Screenshot quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 85, + "default": -1 + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpeg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/backups\/archives": { + "get": { + "summary": "List archives", + "operationId": "backupsListArchives", + "tags": [ + "backups" + ], + "description": "List all archives for a project.", + "responses": { + "200": { + "description": "Backup archive list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchiveList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-archives.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create archive", + "operationId": "backupsCreateArchive", + "tags": [ + "backups" + ], + "description": "Create a new archive asynchronously for a project.", + "responses": { + "201": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + } + }, + "required": [ + "services" + ] + } + } + } + } + } + }, + "\/backups\/archives\/{archiveId}": { + "get": { + "summary": "Get backup archive", + "operationId": "backupsGetArchive", + "tags": [ + "backups" + ], + "description": "Get a backup archive using it's ID.", + "responses": { + "200": { + "description": "Archive", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupArchive" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Archive ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete archive", + "operationId": "backupsDeleteArchive", + "tags": [ + "backups" + ], + "description": "Delete an existing archive for a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-archive.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "archives.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "archiveId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "backupsListPolicies", + "tags": [ + "backups" + ], + "description": "List all policies for a project.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "backupsCreatePolicy", + "tags": [ + "backups" + ], + "description": "Create a new backup policy.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "services": { + "description": "Array of services to backup", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "resourceId": { + "description": "Resource ID. When set, only this single resource will be backed up.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When set to 'disabled', no backups will be taken", + "type": "boolean", + "default": true, + "example": false + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + } + }, + "required": [ + "policyId", + "services", + "retention", + "schedule" + ] + } + } + } + } + } + }, + "\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "backupsGetPolicy", + "tags": [ + "backups" + ], + "description": "Get a backup policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "backups.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "backupsUpdatePolicy", + "tags": [ + "backups" + ], + "description": "Update an existing policy using it's ID.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/update-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "retention": { + "description": "Days to keep backups before deletion", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "schedule": { + "description": "Cron expression", + "type": "string" + }, + "enabled": { + "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "backupsDeletePolicy", + "tags": [ + "backups" + ], + "description": "Delete a policy using it's ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/delete-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "backups.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/backups\/restoration": { + "post": { + "summary": "Create restoration", + "operationId": "backupsCreateRestoration", + "tags": [ + "backups" + ], + "description": "Create and trigger a new restoration for a backup on a project.\n\nFor a backup of one database, the restoration resolves its destination before it is queued. When `newResourceId` is omitted, the archived database is restored in place and its own ID is returned in `options`. Pass a different `newResourceId` to restore alongside it as a new database instead.\n\nThe restoration migration records the archived database in `resourceId` and `resourceType`, and the resolved database in `destinationResourceId` and `destinationResourceType`. Database types are stored canonically as `database`, `documentsdb`, or `vectorsdb`. Project-wide restorations leave these fields empty because they do not have a single source or destination database.\n\nTo list every migration related to one database, use its canonical type in a nested `OR(AND(...), AND(...), AND(...))` across the root, parent, and destination relation pairs: `(resourceType, resourceId)`, `(parentResourceType, parentResourceId)`, and `(destinationResourceType, destinationResourceId)`. Legacy and TablesDB databases use `database`; the operational `resourceType` of a table migration is not rewritten to `tablesdb`.\n\nWhen restoring a DocumentsDB or VectorsDB database from a dedicated source, the restore provisions a fresh dedicated backing database at the source database's own specification and lands the data there. An in-place restore swaps the database onto that backing only once the restore has succeeded, and retires the backing it displaced only once that swap is confirmed, so the source keeps serving its own data until the restored data is in place and any failure leaves it untouched. A serverless source has no dedicated backing to clone and restores onto the archived database instead.\n", + "responses": { + "201": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "archiveId": { + "description": "Backup archive ID to restore", + "type": "string", + "example": "<ARCHIVE_ID>" + }, + "services": { + "description": "Array of services to restore", + "type": "array", + "items": { + "title": "BackupServices", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases" + ], + "title": "dedicatedDatabases" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + } + ] + } + }, + "newResourceId": { + "description": "Destination resource ID. Omit to restore the archived resource in place, or pass a different ID to restore alongside it as a new resource. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<NEW_RESOURCE_ID>" + }, + "newResourceName": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NEW_RESOURCE_NAME>" + } + }, + "required": [ + "archiveId", + "services" + ] + } + } + } + } + } + }, + "\/backups\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "backupsListRestorations", + "tags": [ + "backups" + ], + "description": "List all backup restorations for a project.", + "responses": { + "200": { + "description": "Backup restoration list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + } + }, + "\/backups\/restorations\/{restorationId}": { + "get": { + "summary": "Get backup restoration", + "operationId": "backupsGetRestoration", + "tags": [ + "backups" + ], + "description": "Get the current status of a backup restoration.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "backups\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "restorations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "restorationId", + "description": "Restoration ID. Choose a custom ID`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases": { + "get": { + "summary": "List databases", + "operationId": "databasesList", + "tags": [ + "databases" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + }, + "methods": [ + { + "name": "list", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "queries", + "search", + "total" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/databaseList" + } + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "demo": "databases\/list.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "databasesCreate", + "tags": [ + "databases" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + }, + "methods": [ + { + "name": "create", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Create a new Database.\n", + "demo": "databases\/create.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", + "tags": [ + "databases" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTransactions" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", + "tags": [ + "databases" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTransaction" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", + "tags": [ + "databases" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rows.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTransaction" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", + "tags": [ + "databases" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTransaction" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", + "tags": [ + "databases" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTransaction" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "databasesCreateOperations", + "tags": [ + "databases" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "transactions", + "demo": "databases\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createOperations" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "databasesGet", + "tags": [ + "databases" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + }, + "methods": [ + { + "name": "get", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "demo": "databases\/get.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "databasesUpdate", + "tags": [ + "databases" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + }, + "methods": [ + { + "name": "update", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Update a database by its unique ID.", + "demo": "databases\/update.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "databasesDelete", + "tags": [ + "databases" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "databases", + "demo": "databases\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + }, + "methods": [ + { + "name": "delete", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "demo": "databases\/delete.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "databasesListCollections", + "tags": [ + "databases" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTables" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collections", + "operationId": "databasesCreateCollection", + "tags": [ + "databases" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTable" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "databasesGetCollection", + "tags": [ + "databases" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTable" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "databasesUpdateCollection", + "tags": [ + "databases" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTable" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "databasesDeleteCollection", + "tags": [ + "databases" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "collections", + "demo": "databases\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTable" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "get": { + "summary": "List attributes", + "operationId": "databasesListAttributes", + "tags": [ + "databases" + ], + "description": "List attributes in the collection.", + "responses": { + "200": { + "description": "Attributes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/list-attributes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listColumns" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, size, required, array, status, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { + "post": { + "summary": "Create bigint attribute", + "operationId": "databasesCreateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBigIntColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { + "patch": { + "summary": "Update bigint attribute", + "operationId": "databasesUpdateBigIntAttribute", + "tags": [ + "databases" + ], + "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBigint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-big-int-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBigIntColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { + "post": { + "summary": "Create boolean attribute", + "operationId": "databasesCreateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Create a boolean attribute.\n", + "responses": { + "202": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBooleanColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { + "patch": { + "summary": "Update boolean attribute", + "operationId": "databasesUpdateBooleanAttribute", + "tags": [ + "databases" + ], + "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeBoolean" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-boolean-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBooleanColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { + "post": { + "summary": "Create datetime attribute", + "operationId": "databasesCreateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Create a date time attribute according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createDatetimeColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { + "patch": { + "summary": "Update datetime attribute", + "operationId": "databasesUpdateDatetimeAttribute", + "tags": [ + "databases" + ], + "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateDatetimeColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { + "post": { + "summary": "Create email attribute", + "operationId": "databasesCreateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Create an email attribute.\n", + "responses": { + "202": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEmailColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { + "patch": { + "summary": "Update email attribute", + "operationId": "databasesUpdateEmailAttribute", + "tags": [ + "databases" + ], + "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEmail" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEmailColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { + "post": { + "summary": "Create enum attribute", + "operationId": "databasesCreateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", + "responses": { + "202": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createEnumColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { + "patch": { + "summary": "Update enum attribute", + "operationId": "databasesUpdateEnumAttribute", + "tags": [ + "databases" + ], + "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeEnum" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateEnumColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { + "post": { + "summary": "Create float attribute", + "operationId": "databasesCreateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createFloatColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { + "patch": { + "summary": "Update float attribute", + "operationId": "databasesUpdateFloatAttribute", + "tags": [ + "databases" + ], + "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeFloat" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateFloatColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { + "post": { + "summary": "Create integer attribute", + "operationId": "databasesCreateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIntegerColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { + "patch": { + "summary": "Update integer attribute", + "operationId": "databasesUpdateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIntegerColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { + "post": { + "summary": "Create IP address attribute", + "operationId": "databasesCreateIpAttribute", + "tags": [ + "databases" + ], + "description": "Create IP address attribute.\n", + "responses": { + "202": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIpColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { + "patch": { + "summary": "Update IP address attribute", + "operationId": "databasesUpdateIpAttribute", + "tags": [ + "databases" + ], + "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateIpColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when attribute is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { + "post": { + "summary": "Create line attribute", + "operationId": "databasesCreateLineAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric line attribute.", + "responses": { + "202": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLineColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { + "patch": { + "summary": "Update line attribute", + "operationId": "databasesUpdateLineAttribute", + "tags": [ + "databases" + ], + "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributeLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLine" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLineColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + "post": { + "summary": "Create longtext attribute", + "operationId": "databasesCreateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a longtext attribute.\n", + "responses": { + "202": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createLongtextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { + "patch": { + "summary": "Update longtext attribute", + "operationId": "databasesUpdateLongtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeLongtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-longtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateLongtextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { + "post": { + "summary": "Create mediumtext attribute", + "operationId": "databasesCreateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Create a mediumtext attribute.\n", + "responses": { + "202": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createMediumtextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext attribute", + "operationId": "databasesUpdateMediumtextAttribute", + "tags": [ + "databases" + ], + "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-mediumtext-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateMediumtextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { + "post": { + "summary": "Create point attribute", + "operationId": "databasesCreatePointAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric point attribute.", + "responses": { + "202": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPointColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { + "patch": { + "summary": "Update point attribute", + "operationId": "databasesUpdatePointAttribute", + "tags": [ + "databases" + ], + "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePoint" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-point-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePointColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { + "post": { + "summary": "Create polygon attribute", + "operationId": "databasesCreatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Create a geometric polygon attribute.", + "responses": { + "202": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPolygonColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { + "patch": { + "summary": "Update polygon attribute", + "operationId": "databasesUpdatePolygonAttribute", + "tags": [ + "databases" + ], + "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", + "responses": { + "200": { + "description": "AttributePolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributePolygon" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-polygon-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePolygonColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New attribute key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { + "post": { + "summary": "Create relationship attribute", + "operationId": "databasesCreateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "202": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRelationshipColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedCollectionId": { + "description": "Related Collection ID.", + "type": "string", + "example": "<RELATED_COLLECTION_ID>" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Attribute Key.", + "type": "string", + "example": "<TWO_WAY_KEY>", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedCollectionId", + "type" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { + "patch": { + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", + "tags": [ + "databases" + ], + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "responses": { + "200": { + "description": "AttributeRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeRelationship" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-relationship-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRelationshipColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { + "post": { + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", + "tags": [ + "databases" + ], + "description": "Create a string attribute.\n", + "responses": { + "202": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Attribute size for text attributes, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "patch": { + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", + "tags": [ + "databases" + ], + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-string-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "post": { + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", + "tags": [ + "databases" + ], + "description": "Create a text attribute.\n", + "responses": { + "202": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "patch": { + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", + "tags": [ + "databases" + ], + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-text-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "post": { + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Create a URL attribute.\n", + "responses": { + "202": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createUrlColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "patch": { + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", + "tags": [ + "databases" + ], + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeUrl" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-url-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateUrlColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "post": { + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Create a varchar attribute.\n", + "responses": { + "202": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/create-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createVarcharColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Attribute Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is attribute an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the attribute. Encryption enhances security by not storing any plain text values in the database. However, encrypted attributes cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "patch": { + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", + "tags": [ + "databases" + ], + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeVarchar" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/update-varchar-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateVarcharColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is attribute required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar attribute.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Attribute Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { + "get": { + "summary": "Get attribute", + "operationId": "databasesGetAttribute", + "tags": [ + "databases" + ], + "description": "Get attribute by ID.", + "responses": { + "200": { + "description": "AttributeBoolean, or AttributeBigInt, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributePoint, or AttributeLine, or AttributePolygon, or AttributeVarchar, or AttributeText, or AttributeMediumtext, or AttributeLongtext, or AttributeString", + "content": { + "application\/json": { + "schema": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/get-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", + "tags": [ + "databases" + ], + "description": "Deletes an attribute.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "attributes", + "demo": "databases\/delete-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "databasesListDocuments", + "tags": [ + "databases" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "databasesCreateDocument", + "tags": [ + "databases" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, + "methods": [ + { + "name": "createDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + } + }, + { + "name": "createDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRows" + } + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "databasesUpsertDocuments", + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + }, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "databases", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "demo": "databases\/upsert-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + } + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "databasesUpdateDocuments", + "tags": [ + "databases" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRows" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "databasesDeleteDocuments", + "tags": [ + "databases" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRows" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "databasesGetDocument", + "tags": [ + "databases" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "databasesUpsertDocument", + "tags": [ + "databases" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, + "methods": [ + { + "name": "upsertDocument", + "namespace": "databases", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/upsert-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + } + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "databasesUpdateDocument", + "tags": [ + "databases" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "databasesDeleteDocument", + "tags": [ + "databases" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "databasesDecrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Decrement a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "databasesIncrementDocumentAttribute", + "tags": [ + "databases" + ], + "description": "Increment a specific attribute of a document by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "documents", + "demo": "databases\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "databasesListIndexes", + "tags": [ + "databases" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listIndexes" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "databasesCreateIndex", + "tags": [ + "databases" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIndex" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DatabasesIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "databasesGetIndex", + "tags": [ + "databases" + ], + "description": "Get an index by its unique ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getIndex" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "databasesDeleteIndex", + "tags": [ + "databases" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "indexes", + "demo": "databases\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteIndex" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb": { + "get": { + "summary": "List databases", + "operationId": "documentsDBList", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "documentsDBCreate", + "tags": [ + "documentsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "documentsDBListSpecifications", + "tags": [ + "documentsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/documentsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "documentsDBListTransactions", + "tags": [ + "documentsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", + "tags": [ + "documentsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", + "tags": [ + "documentsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "tags": [ + "documentsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", + "tags": [ + "documentsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "documentsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.write", + "platforms": [ + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "documentsDBGet", + "tags": [ + "documentsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", + "tags": [ + "documentsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", + "tags": [ + "documentsDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collectionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", + "tags": [ + "documentsDB" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "attributes": { + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "documentsDBGetCollection", + "tags": [ + "documentsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", + "tags": [ + "documentsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", + "tags": [ + "documentsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "documentsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", + "tags": [ + "documentsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "tags": [ + "documentsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", + "tags": [ + "documentsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "demo": "documentsdb\/upsert-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", + "tags": [ + "documentsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected documents", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", + "tags": [ + "documentsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", + "tags": [ + "documentsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "tags": [ + "documentsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "tags": [ + "documentsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", + "tags": [ + "documentsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to decrement the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "tags": [ + "documentsDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documentsdb.documents.write", + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string", + "example": "<ATTRIBUTE>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the attribute by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float" + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", + "tags": [ + "documentsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "documentsDBCreateIndex", + "tags": [ + "documentsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "DocumentsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", + "tags": [ + "documentsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", + "tags": [ + "documentsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "documentsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documentsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "documentsDBCreateFailover", + "tags": [ + "documentsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "documentsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "documentsDBListOperations", + "tags": [ + "documentsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "documentsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "documentsDBGetReplicas", + "tags": [ + "documentsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "documentsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/documentsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "documentsDBGetStatus", + "tags": [ + "documentsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documentsdb", + "demo": "documentsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", + "tags": [ + "domains" + ], + "description": "List all domains registered for this project. This endpoint supports pagination.", + "responses": { + "200": { + "description": "Domains list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on attributes such as domain name, teamInternalId, expiration, etc.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create a new domain.", + "operationId": "domainsCreate", + "tags": [ + "domains" + ], + "description": "Create a new domain. Before creating a domain, you need to ensure that your DNS provider is properly configured. After creating the domain, you can use the verification endpoint to check if the domain is ready to be used.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team unique ID.", + "type": "string", + "example": "<TEAM_ID>" + }, + "domain": { + "description": "Domain name (e.g. \"example.com\").", + "type": "string", + "example": "example.com" + } + }, + "required": [ + "teamId", + "domain" + ] + } + } + } + } + } + }, + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", + "tags": [ + "domains" + ], + "description": "Get the registration price for a domain name.", + "responses": { + "200": { + "description": "DomainPrice", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPrice" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": null, + "demo": "domains\/get-price.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "2.0.0", + "replaceWith": "domains.listPrices" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domain", + "description": "Domain name to get price for.", + "required": true, + "schema": { + "type": "string", + "example": "example.com" + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/prices": { + "get": { + "summary": "List domain prices", + "operationId": "domainsListPrices", + "tags": [ + "domains" + ], + "description": "Check availability and get the requested registration price for one or more domain names. Availability is resolved for all domains in a single registrar lookup. Unavailable domains have a null price for new registrations, but can still be priced for renewal, transfer, or trade. Every priced domain also carries its renewal price for the same period, so a separate renewal lookup is not needed. A domain whose price could not be resolved, for example because its TLD is not supported, is returned with a null price.", + "responses": { + "200": { + "description": "Domain prices list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPricesList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-prices.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domains", + "description": "Domain names to check availability and price for. Maximum of 50 domains per request.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "in": "query" + }, + { + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "schema": { + "type": "integer", + "format": "uint32", + "default": 1 + }, + "in": "query" + }, + { + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "schema": { + "type": "string", + "example": "new", + "title": "DomainRegistrationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "new" + ], + "title": "new" + }, + { + "type": "string", + "enum": [ + "transfer" + ], + "title": "transfer" + }, + { + "type": "string", + "enum": [ + "renewal" + ], + "title": "renewal" + }, + { + "type": "string", + "enum": [ + "trade" + ], + "title": "trade" + } + ], + "default": "new" + }, + "in": "query" + } + ] + } + }, + "\/domains\/{domainId}": { + "get": { + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", + "tags": [ + "domains" + ], + "description": "Get a domain by its unique ID.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a domain by its unique ID.", + "operationId": "domainsDelete", + "tags": [ + "domains" + ], + "description": "Delete a domain by its unique ID. This endpoint can be used to delete a domain from your project.\nOnce deleted, the domain will no longer be available for use and all associated resources will be removed.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/nameservers": { + "patch": { + "summary": "Update the registrar nameservers for the given domain.", + "operationId": "domainsUpdateNameservers", + "tags": [ + "domains" + ], + "description": "Update the registrar nameservers for the given domain. When nameservers are not provided,\nthe domain will be updated to use Appwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "nameservers": { + "description": "Nameservers to set for the domain. Defaults to Appwrite nameservers when omitted.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/domains\/{domainId}\/nameservers\/verification": { + "patch": { + "summary": "Verify which NS records are used and update the domain accordingly.", + "operationId": "domainsVerifyNameservers", + "tags": [ + "domains" + ], + "description": "Verify which NS records are used and update the domain accordingly. This will check the domain's\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/verify-nameservers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/google-workspace": { + "get": { + "summary": "Get Google Workspace preset (Records)", + "operationId": "domainsGetPresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "List Google Workspace DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Google Workspace preset (Records)", + "operationId": "domainsCreatePresetGoogleWorkspace", + "tags": [ + "domains" + ], + "description": "Add Google Workspace DNS records to the domain. This will create the required MX records \nfor Google Workspace email hosting.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-google-workspace.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/icloud": { + "get": { + "summary": "Get iCloud preset (Records)", + "operationId": "domainsGetPresetICloud", + "tags": [ + "domains" + ], + "description": "List iCloud DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", + "tags": [ + "domains" + ], + "description": "Add iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-i-cloud.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/mailgun": { + "get": { + "summary": "Get Mailgun preset (Records)", + "operationId": "domainsGetPresetMailgun", + "tags": [ + "domains" + ], + "description": "List Mailgun DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Mailgun preset (Records)", + "operationId": "domainsCreatePresetMailgun", + "tags": [ + "domains" + ], + "description": "Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \nfor Mailgun in the specified domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/outlook": { + "get": { + "summary": "Get Outlook preset (Records)", + "operationId": "domainsGetPresetOutlook", + "tags": [ + "domains" + ], + "description": "List Outlook DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Outlook preset (Records)", + "operationId": "domainsCreatePresetOutlook", + "tags": [ + "domains" + ], + "description": "Add Outlook DNS records to the domain. This will create the required MX records\nfor setting up Outlook email hosting for your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-outlook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/proton-mail": { + "get": { + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", + "tags": [ + "domains" + ], + "description": "List ProtonMail DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create ProtonMail preset (Records)", + "operationId": "domainsCreatePresetProtonMail", + "tags": [ + "domains" + ], + "description": "Add ProtonMail DNS records to the domain. This will create the required MX records\nfor using ProtonMail with your custom domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-proton-mail.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/zoho": { + "get": { + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", + "tags": [ + "domains" + ], + "description": "List Zoho DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", + "tags": [ + "domains" + ], + "description": "Add Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-preset-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records": { + "get": { + "summary": "List DNS records for a given domain.", + "operationId": "domainsListRecords", + "tags": [ + "domains" + ], + "description": "List DNS records for a given domain. You can use this endpoint to list all the DNS records\nassociated with your domain.", + "responses": { + "200": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/list-records.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. You may filter on attributes such as type, name, value, etc. Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records\/a": { + "post": { + "summary": "Create a new A record for the given domain.", + "operationId": "domainsCreateRecordA", + "tags": [ + "domains" + ], + "description": "Create a new A record for the given domain. A records are used to point a domain name \nto an IPv4 address. The record value should be a valid IPv4 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/a\/{recordId}": { + "put": { + "summary": "Update an existing A record for the given domain.", + "operationId": "domainsUpdateRecordA", + "tags": [ + "domains" + ], + "description": "Update an existing A record for the given domain. This endpoint allows you to modify \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-a.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv4 address for this A record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa": { + "post": { + "summary": "Create a new AAAA record for the given domain.", + "operationId": "domainsCreateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \nto your domain. The record will be used to point a hostname to an IPv6 address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment explaining what this record is for.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { + "put": { + "summary": "Update an existing AAAA record for the given domain.", + "operationId": "domainsUpdateRecordAAAA", + "tags": [ + "domains" + ], + "description": "Update an existing AAAA record for the given domain. This endpoint allows you to modify\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-aaaa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "IPv6 address for this AAAA record.", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias": { + "post": { + "summary": "Create a new ALIAS record for the given domain.", + "operationId": "domainsCreateRecordAlias", + "tags": [ + "domains" + ], + "description": "Create a new ALIAS record for the given domain. This record type can be used to point your domain \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/alias\/{recordId}": { + "put": { + "summary": "Update an existing ALIAS record for the given domain.", + "operationId": "domainsUpdateRecordAlias", + "tags": [ + "domains" + ], + "description": "Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-alias.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "Target domain for this ALIAS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa": { + "post": { + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", + "tags": [ + "domains" + ], + "description": "Create a new CAA record for the given domain. CAA records are used to specify which \nCertificate Authorities (CAs) are allowed to issue SSL\/TLS certificates for your domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa\/{recordId}": { + "put": { + "summary": "Update an existing CAA record for the given domain.", + "operationId": "domainsUpdateRecordCAA", + "tags": [ + "domains" + ], + "description": "Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-caa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name.", + "type": "string" + }, + "value": { + "description": "CAA value (e.g. issuer domain).", + "type": "string" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname": { + "post": { + "summary": "Create a new CNAME record for the given domain.", + "operationId": "domainsCreateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Create a new CNAME record for the given domain.\n \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/cname\/{recordId}": { + "put": { + "summary": "Update an existing CNAME record for the given domain.", + "operationId": "domainsUpdateRecordCNAME", + "tags": [ + "domains" + ], + "description": "Update an existing CNAME record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-cname.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Canonical target for this CNAME record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https": { + "post": { + "summary": "Create a new HTTPS record for the given domain.", + "operationId": "domainsCreateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Create a new HTTPS record for the given domain. This record is used to configure HTTPS \nsettings for your domain, enabling secure communication over SSL\/TLS.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https\/{recordId}": { + "put": { + "summary": "Update an existing HTTPS record for the given domain.", + "operationId": "domainsUpdateRecordHTTPS", + "tags": [ + "domains" + ], + "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-https.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Target for the HTTPS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", + "tags": [ + "domains" + ], + "description": "Create a new MX record for the given domain. MX records are used to define the mail servers responsible \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx\/{recordId}": { + "put": { + "summary": "Update an existing MX record for the given domain.", + "operationId": "domainsUpdateRecordMX", + "tags": [ + "domains" + ], + "description": "Update an existing MX record for the given domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-mx.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Mail server domain for this MX record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "MX priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns": { + "post": { + "summary": "Create a new NS record for the given domain.", + "operationId": "domainsCreateRecordNS", + "tags": [ + "domains" + ], + "description": "Create a new NS record for the given domain. NS records specify the nameservers that are used \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", + "tags": [ + "domains" + ], + "description": "Update an existing NS record for the given domain. This endpoint allows you to modify \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-ns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain).", + "type": "string" + }, + "value": { + "description": "Nameserver target for this NS record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv": { + "post": { + "summary": "Create a new SRV record for the given domain.", + "operationId": "domainsCreateRecordSRV", + "tags": [ + "domains" + ], + "description": "Create a new SRV record for the given domain. SRV records are used to define the location \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "weight": { + "description": "Record weight, used to share load between targets of equal priority.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv\/{recordId}": { + "put": { + "summary": "Update an existing SRV record for the given domain.", + "operationId": "domainsUpdateRecordSRV", + "tags": [ + "domains" + ], + "description": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-srv.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (service name).", + "type": "string" + }, + "value": { + "description": "Target hostname for this SRV record.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "priority": { + "description": "Record priority. Lower values are tried first.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "weight": { + "description": "Record weight, used to share load between targets of equal priority.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "port": { + "description": "Port number for the service.", + "type": "integer", + "example": 0, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt": { + "post": { + "summary": "Create a new TXT record for the given domain.", + "operationId": "domainsCreateRecordTXT", + "tags": [ + "domains" + ], + "description": "Create a new TXT record for the given domain. TXT records can be used \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", + "responses": { + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/create-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "default": "", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", + "tags": [ + "domains" + ], + "description": "Update an existing TXT record for the given domain.\n \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-record-txt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Record name (subdomain) for the TXT record.", + "type": "string" + }, + "value": { + "description": "TXT record value.", + "type": "string", + "example": "<VALUE>" + }, + "ttl": { + "description": "Time to live, in seconds. Must be between 1 and 2147483647.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "comment": { + "description": "A comment for this record.", + "type": "string", + "default": "", + "example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/{recordId}": { + "get": { + "summary": "Get a single DNS record for a given domain by record ID.", + "operationId": "domainsGetRecord", + "tags": [ + "domains" + ], + "description": "Get a single DNS record for a given domain by record ID.\n \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", + "tags": [ + "domains" + ], + "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/delete-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RECORD_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", + "tags": [ + "domains" + ], + "description": "Update the team ID for a specific domain. The caller must administer the current\nteam and be an owner of the destination team.\n\nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", + "responses": { + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "New team unique ID.", + "type": "string", + "example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/transfers\/status": { + "get": { + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", + "tags": [ + "domains" + ], + "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", + "responses": { + "200": { + "description": "domainTransferStatus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainTransferStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-transfer-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", + "tags": [ + "domains" + ], + "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/get-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update the DNS zone for the given domain using the provided zone file content. All parsed records are imported and then the main domain document is returned.", + "operationId": "domainsUpdateZone", + "tags": [ + "domains" + ], + "description": "Update the DNS zone for the given domain using the provided zone file content.\nAll parsed records are imported and then the main domain document is returned.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "domains\/update-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOMAIN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "DNS zone file content as a string.", + "type": "string", + "example": "<CONTENT>" + } + }, + "required": [ + "content" + ] + } + } + } + } + } + }, + "\/embeddings\/text": { + "post": { + "summary": "Create text embeddings", + "operationId": "embeddingsCreateTextEmbeddings", + "tags": [ + "embeddings" + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "responses": { + "200": { + "description": "Embedding list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/embeddingList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "embeddings", + "demo": "embeddings\/create-text-embeddings.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "embeddings.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createTextEmbeddings", + "namespace": "embeddings", + "platforms": [ + "console", + "server" + ], + "summary": "Create Text Embedding", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "texts", + "model" + ], + "required": [ + "texts" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/embeddingList" + } + ], + "description": "Generate vector embeddings for an array of text using the selected embedding model. Use the returned vectors to power semantic search and similarity queries against your vector collections.\n", + "demo": "embeddings\/create-text-embeddings.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "texts": { + "description": "Array of text to generate embeddings.", + "type": "array", + "example": [ + "Appwrite helps developers build applications.", + "Find documents with semantic search." + ], + "items": { + "type": "string" + } + }, + "model": { + "description": "The embedding model to use for generating vector embeddings.", + "type": "string", + "default": "nomic-embed-text", + "example": "nomic-embed-text", + "title": "EmbeddingModel", + "oneOf": [ + { + "type": "string", + "enum": [ + "nomic-embed-text" + ], + "title": "nomic-embed-text" + }, + { + "type": "string", + "enum": [ + "all-minilm" + ], + "title": "all-minilm" + } + ] + } + }, + "required": [ + "texts" + ] + } + } + } + } + } + }, + "\/functions": { + "get": { + "summary": "List functions", + "operationId": "functionsList", + "tags": [ + "functions" + ], + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Functions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/functionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", + "tags": [ + "functions" + ], + "description": "Create a new function. You can pass a list of [permissions](https:\/\/appwrite.io\/docs\/permissions) to allow different project users or team with access to execute the function using the client API.", + "responses": { + "201": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "functionId": { + "description": "Function ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<FUNCTION_ID>" + }, + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Function maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "<ENTRYPOINT>" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "<COMMANDS>" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] + } + } + } + } + } + }, + "\/functions\/runtimes": { + "get": { + "summary": "List runtimes", + "operationId": "functionsListRuntimes", + "tags": [ + "functions" + ], + "description": "Get a list of all runtimes that are currently active on your instance.", + "responses": { + "200": { + "description": "Runtimes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/runtimeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-runtimes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "functionsListSpecifications", + "tags": [ + "functions" + ], + "description": "List allowed function specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "runtimes", + "demo": "functions\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/functions\/{functionId}": { + "get": { + "summary": "Get function", + "operationId": "functionsGet", + "tags": [ + "functions" + ], + "description": "Get a function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", + "tags": [ + "functions" + ], + "description": "Update function by its unique ID.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Function name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "runtime": { + "description": "Execution runtime.", + "type": "string", + "example": "node-14.5", + "title": "Runtime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "execute": { + "description": "An array of role strings with execution permissions. By default no user is granted with any execute permissions. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string", + "default": "", + "example": "0 0 * * *" + }, + "timeout": { + "description": "Maximum execution time in seconds.", + "type": "integer", + "default": 15, + "example": 1, + "format": "int32" + }, + "enabled": { + "description": "Is function enabled? When set to 'disabled', users cannot access the function but Server SDKs with and API key can still access the function. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "entrypoint": { + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "type": "string", + "default": "", + "example": "<ENTRYPOINT>" + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "default": "", + "example": "<COMMANDS>" + }, + "scopes": { + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the function", + "type": "string", + "example": "<PROVIDER_REPOSITORY_ID>", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the function", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the function? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to function code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the function deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the function executions.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "tags": [ + "functions" + ], + "description": "Delete a function by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", + "tags": [ + "functions" + ], + "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", + "responses": { + "200": { + "description": "Function", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/function" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "functions", + "demo": "functions\/update-function-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "functionsListDeployments", + "tags": [ + "functions" + ], + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "tags": [ + "functions" + ], + "description": "Create a new function code deployment. Use this endpoint to upload a new version of your code function. To execute your newly uploaded code, you'll need to update the function's deployment to use your new deployment UID.\n\nThis endpoint accepts a tar.gz file compressed with your code. Make sure to include any dependencies your code has within the compressed file. You can learn more about code packaging in the [Appwrite Cloud Functions tutorial](https:\/\/appwrite.io\/docs\/functions).\n\nUse the \"command\" param to set the entrypoint used to execute your code.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "entrypoint": { + "description": "Entrypoint File.", + "type": "string", + "example": "<ENTRYPOINT>", + "nullable": true + }, + "commands": { + "description": "Build Commands.", + "type": "string", + "example": "<COMMANDS>", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "example": false + } + }, + "required": [ + "code", + "activate" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", + "tags": [ + "functions" + ], + "description": "Create a new build for an existing function deployment. This endpoint allows you to rebuild a deployment with the updated function configuration, including its entrypoint and build commands if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "buildId": { + "description": "Build unique ID.", + "type": "string", + "default": "", + "example": "<BUILD_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/functions\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "<REPOSITORY>" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "<OWNER>" + }, + "rootDirectory": { + "description": "Path to function code in the template repo.", + "type": "string", + "example": "<ROOT_DIRECTORY>" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "commit", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", + "tags": [ + "functions" + ], + "description": "Create a deployment when a function is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "functionsGetDeployment", + "tags": [ + "functions" + ], + "description": "Get a function deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", + "tags": [ + "functions" + ], + "description": "Delete a code deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", + "tags": [ + "functions" + ], + "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "functions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", + "tags": [ + "functions" + ], + "description": "Cancel an ongoing function deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "functions\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/executions": { + "get": { + "summary": "List executions", + "operationId": "functionsListExecutions", + "tags": [ + "functions" + ], + "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/list-executions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "tags": [ + "functions" + ], + "description": "Trigger a function execution. The returned object will return you the current execution status. You can ping the `Get Execution` endpoint to get updates on the current execution status. Once this endpoint is called, your function execution process will start asynchronously.", + "responses": { + "201": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "description": "HTTP body of execution. Default value is empty string.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "async": { + "description": "Execute code in the background. Default value is false.", + "type": "boolean", + "default": false, + "example": false + }, + "path": { + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "type": "string", + "default": "\/", + "example": "<PATH>" + }, + "method": { + "description": "HTTP method of execution. Default value is POST.", + "type": "string", + "default": "POST", + "example": "GET", + "title": "ExecutionMethod", + "oneOf": [ + { + "type": "string", + "enum": [ + "GET" + ], + "title": "GET" + }, + { + "type": "string", + "enum": [ + "POST" + ], + "title": "POST" + }, + { + "type": "string", + "enum": [ + "PUT" + ], + "title": "PUT" + }, + { + "type": "string", + "enum": [ + "PATCH" + ], + "title": "PATCH" + }, + { + "type": "string", + "enum": [ + "DELETE" + ], + "title": "DELETE" + }, + { + "type": "string", + "enum": [ + "OPTIONS" + ], + "title": "OPTIONS" + }, + { + "type": "string", + "enum": [ + "HEAD" + ], + "title": "HEAD" + } + ] + }, + "headers": { + "description": "HTTP headers of execution. Defaults to empty.", + "type": "object", + "default": {}, + "example": {} + }, + "scheduledAt": { + "description": "Scheduled execution time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future with precision in minutes.", + "type": "string", + "example": "<SCHEDULED_AT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/functions\/{functionId}\/executions\/{executionId}": { + "get": { + "summary": "Get execution", + "operationId": "functionsGetExecution", + "tags": [ + "functions" + ], + "description": "Get a function execution log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.read", + "execution.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", + "tags": [ + "functions" + ], + "description": "Delete a function execution by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "functions\/delete-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "executions.write", + "execution.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "example": "<EXECUTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/functions\/{functionId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "functionsListVariables", + "tags": [ + "functions" + ], + "description": "Get a list of all variables of a specific function.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", + "tags": [ + "functions" + ], + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "functionsGetVariable", + "tags": [ + "functions" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", + "tags": [ + "functions" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", + "tags": [ + "functions" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "functions\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "functions.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "query { localeGet { ip } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "tags": [ + "graphql" + ], + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "description": "The query or queries to execute.", + "type": "object", + "default": {}, + "example": { + "query": "mutation { accountUpdateName(name: \"Walter\") { name } }" + } + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "tags": [ + "locale" + ], + "description": "Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in a supported language.\n\n([IP Geolocation by DB-IP](https:\/\/db-ip.com))", + "responses": { + "200": { + "description": "Locale", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/locale" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "tags": [ + "locale" + ], + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "responses": { + "200": { + "description": "Locale codes list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/localeCodeList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "tags": [ + "locale" + ], + "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Continents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/continentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "tags": [ + "locale" + ], + "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "tags": [ + "locale" + ], + "description": "List of all countries that are currently members of the EU. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Countries List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/countryList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-eu.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "tags": [ + "locale" + ], + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Phones List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/phoneList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-countries-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "tags": [ + "locale" + ], + "description": "List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.", + "responses": { + "200": { + "description": "Currencies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/currencyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "tags": [ + "locale" + ], + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "responses": { + "200": { + "description": "Languages List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/languageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/messages": { + "get": { + "summary": "List messages", + "operationId": "messagingListMessages", + "tags": [ + "messaging" + ], + "description": "Get a list of all messages from the current Appwrite project.", + "responses": { + "200": { + "description": "Message list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/messageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/list-messages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType, users, targets", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", + "tags": [ + "messaging" + ], + "description": "Create a new email message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>" + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "cc": { + "description": "Array of target IDs to be added as CC.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "bcc": { + "description": "Array of target IDs to be added as BCC.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "attachments": { + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "type": "array", + "default": [], + "items": { + "type": "string" + }, + "nullable": true + }, + "replyToEmail": { + "description": "Email address to reply to. If not set, defaults to the sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name of the reply to recipient. If not set, defaults to the sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + }, + "examples": { + "draft": { + "summary": "Create an email draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "subject": "Welcome", + "content": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", + "tags": [ + "messaging" + ], + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subject": { + "description": "Email Subject.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "cc": { + "description": "Array of target IDs to be added as CC.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "bcc": { + "description": "Array of target IDs to be added as BCC.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "attachments": { + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "replyToEmail": { + "description": "Email address to reply to. Pass an empty string to restore the provider or sender default.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Name of the reply to recipient. Pass an empty string to restore the provider or sender default.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "html": { + "description": "Is content of type HTML", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", + "tags": [ + "messaging" + ], + "description": "Create a new push notification.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "title": { + "description": "Title for push notification.", + "type": "string", + "default": "", + "example": "<TITLE>" + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "default": "", + "example": "<BODY>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "data": { + "description": "Additional key-value pair data for push notification.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "action": { + "description": "Action for push notification.", + "type": "string", + "default": "", + "example": "<ACTION>" + }, + "image": { + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "type": "string", + "default": "", + "example": "<ID1:ID2>" + }, + "icon": { + "description": "Icon for push notification. Available only for Android and Web Platform.", + "type": "string", + "default": "", + "example": "<ICON>" + }, + "sound": { + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "type": "string", + "default": "", + "example": "<SOUND>" + }, + "color": { + "description": "Color for push notification. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<COLOR>" + }, + "tag": { + "description": "Tag for push notification. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<TAG>" + }, + "badge": { + "description": "Badge for push notification. Available only for iOS Platform.", + "type": "integer", + "default": -1, + "example": 1, + "format": "int32" + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "contentAvailable": { + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "type": "boolean", + "default": false, + "example": false + }, + "critical": { + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "type": "boolean", + "default": false, + "example": false + }, + "priority": { + "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", + "type": "string", + "default": "high", + "example": "normal", + "title": "MessagePriority", + "oneOf": [ + { + "type": "string", + "enum": [ + "normal" + ], + "title": "normal" + }, + { + "type": "string", + "enum": [ + "high" + ], + "title": "high" + } + ] + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Available only for Android Platform.", + "type": "string", + "default": "", + "example": "<CHANNEL_ID>" + } + }, + "required": [ + "messageId" + ] + }, + "examples": { + "draft": { + "summary": "Create a push notification draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "title": "Welcome", + "body": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", + "tags": [ + "messaging" + ], + "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "title": { + "description": "Title for push notification.", + "type": "string", + "example": "<TITLE>", + "nullable": true + }, + "body": { + "description": "Body for push notification.", + "type": "string", + "example": "<BODY>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "data": { + "description": "Additional Data for push notification.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "action": { + "description": "Action for push notification.", + "type": "string", + "example": "<ACTION>", + "nullable": true + }, + "image": { + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "type": "string", + "example": "<ID1:ID2>", + "nullable": true + }, + "icon": { + "description": "Icon for push notification. Available only for Android and Web platforms.", + "type": "string", + "example": "<ICON>", + "nullable": true + }, + "sound": { + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "type": "string", + "example": "<SOUND>", + "nullable": true + }, + "color": { + "description": "Color for push notification. Available only for Android platforms.", + "type": "string", + "example": "<COLOR>", + "nullable": true + }, + "tag": { + "description": "Tag for push notification. Available only for Android platforms.", + "type": "string", + "example": "<TAG>", + "nullable": true + }, + "badge": { + "description": "Badge for push notification. Available only for iOS platforms.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "contentAvailable": { + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "type": "boolean", + "example": false, + "nullable": true + }, + "critical": { + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "type": "boolean", + "example": false, + "nullable": true + }, + "priority": { + "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", + "type": "string", + "example": "normal", + "title": "MessagePriority", + "oneOf": [ + { + "type": "string", + "enum": [ + "normal" + ], + "title": "normal" + }, + { + "type": "string", + "enum": [ + "high" + ], + "title": "high" + } + ], + "nullable": true + }, + "channelId": { + "description": "ID of the notification channel to deliver the notification on. The app must have already created a channel with this ID, otherwise the channel from the app manifest is used. Pass an empty string to clear it. Available only for Android platforms.", + "type": "string", + "example": "<CHANNEL_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", + "tags": [ + "messaging" + ], + "description": "Create a new SMS message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/create-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + } + }, + { + "name": "createSMS", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<MESSAGE_ID>" + }, + "content": { + "description": "SMS Content.", + "type": "string", + "example": "<CONTENT>" + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "default": false, + "example": false + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + }, + "examples": { + "draft": { + "summary": "Create an SMS draft without sending it", + "value": { + "messageId": "<MESSAGE_ID>", + "content": "Welcome to our app.", + "draft": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", + "tags": [ + "messaging" + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/update-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + } + }, + { + "name": "updateSMS", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "description": "Email Content.", + "type": "string", + "example": "<CONTENT>", + "nullable": true + }, + "topics": { + "description": "List of Topic IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "users": { + "description": "List of User IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "targets": { + "description": "List of Targets IDs.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "draft": { + "description": "Is message a draft", + "type": "boolean", + "example": false, + "nullable": true + }, + "scheduledAt": { + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/{messageId}": { + "get": { + "summary": "Get message", + "operationId": "messagingGetMessage", + "tags": [ + "messaging" + ], + "description": "Get a message by its unique ID.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/get-message.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", + "tags": [ + "messaging" + ], + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/targets": { + "get": { + "summary": "List message targets", + "operationId": "messagingListTargets", + "tags": [ + "messaging" + ], + "description": "Get a list of the targets associated with a message.", + "responses": { + "200": { + "description": "Target list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/targetList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "messages", + "demo": "messaging\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MESSAGE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers": { + "get": { + "summary": "List providers", + "operationId": "messagingListProviders", + "tags": [ + "messaging" + ], + "description": "Get a list of all providers from the current Appwrite project.", + "responses": { + "200": { + "description": "Provider list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/list-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, provider, type, enabled", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers\/apns": { + "post": { + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Apple Push Notification service provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "authKey": { + "description": "APNS authentication key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "authKeyId": { + "description": "APNS authentication key ID.", + "type": "string", + "default": "", + "example": "<AUTH_KEY_ID>" + }, + "teamId": { + "description": "APNS team ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + }, + "bundleId": { + "description": "APNS bundle ID.", + "type": "string", + "default": "", + "example": "<BUNDLE_ID>" + }, + "sandbox": { + "description": "Use APNS sandbox environment.", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "authKey": { + "description": "APNS authentication key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "authKeyId": { + "description": "APNS authentication key ID.", + "type": "string", + "default": "", + "example": "<AUTH_KEY_ID>" + }, + "teamId": { + "description": "APNS team ID.", + "type": "string", + "default": "", + "example": "<TEAM_ID>" + }, + "bundleId": { + "description": "APNS bundle ID.", + "type": "string", + "default": "", + "example": "<BUNDLE_ID>" + }, + "sandbox": { + "description": "Use APNS sandbox environment.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/appwrite": { + "post": { + "summary": "Create Appwrite provider", + "operationId": "messagingCreateAppwriteProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Appwrite push provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-appwrite-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "qos": { + "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/appwrite\/{providerId}": { + "patch": { + "summary": "Update Appwrite provider", + "operationId": "messagingUpdateAppwriteProvider", + "tags": [ + "messaging" + ], + "description": "Update an Appwrite push provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-appwrite-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "qos": { + "description": "Default QoS for topics on this provider (0 or 1). Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Default message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/fcm": { + "post": { + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "serviceAccountJSON": { + "description": "FCM service account JSON.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "serviceAccountJSON": { + "description": "FCM service account JSON.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Mailgun provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Mailgun API Key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "domain": { + "description": "Mailgun Domain.", + "type": "string", + "default": "", + "example": "example.com" + }, + "isEuRegion": { + "description": "Set as EU region.", + "type": "boolean", + "example": false, + "nullable": true + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Update a Mailgun provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "apiKey": { + "description": "Mailgun API Key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "domain": { + "description": "Mailgun Domain.", + "type": "string", + "default": "", + "example": "example.com" + }, + "isEuRegion": { + "description": "Set as EU region.", + "type": "boolean", + "example": false, + "nullable": true + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/msg91": { + "post": { + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Create a new MSG91 provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "templateId": { + "description": "Msg91 template ID", + "type": "string", + "default": "", + "example": "<TEMPLATE_ID>" + }, + "senderId": { + "description": "Msg91 sender ID.", + "type": "string", + "default": "", + "example": "<SENDER_ID>" + }, + "authKey": { + "description": "Msg91 auth key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Update a MSG91 provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "templateId": { + "description": "Msg91 template ID.", + "type": "string", + "default": "", + "example": "<TEMPLATE_ID>" + }, + "senderId": { + "description": "Msg91 sender ID.", + "type": "string", + "default": "", + "example": "<SENDER_ID>" + }, + "authKey": { + "description": "Msg91 auth key.", + "type": "string", + "default": "", + "example": "<AUTH_KEY>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/resend": { + "post": { + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Resend provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-resend-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Resend API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", + "tags": [ + "messaging" + ], + "description": "Update a Resend provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-resend-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Resend API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid": { + "post": { + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Sendgrid provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "apiKey": { + "description": "Sendgrid API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Update a Sendgrid provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Sendgrid API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/ses": { + "post": { + "summary": "Create Amazon SES provider", + "operationId": "messagingCreateSesProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Amazon SES provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-ses-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "accessKey": { + "description": "AWS access key ID.", + "type": "string", + "default": "", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "AWS secret access key.", + "type": "string", + "default": "", + "example": "<SECRET_KEY>" + }, + "region": { + "description": "AWS region, for example us-east-1.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/ses\/{providerId}": { + "patch": { + "summary": "Update Amazon SES provider", + "operationId": "messagingUpdateSesProvider", + "tags": [ + "messaging" + ], + "description": "Update an Amazon SES provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-ses-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "accessKey": { + "description": "AWS access key ID.", + "type": "string", + "default": "", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "AWS secret access key.", + "type": "string", + "default": "", + "example": "<SECRET_KEY>" + }, + "region": { + "description": "AWS region, for example us-east-1.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", + "tags": [ + "messaging" + ], + "description": "Create a new SMTP provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-smtp-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + }, + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + } + }, + { + "name": "createSMTPProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "host": { + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "type": "string", + "example": "<HOST>" + }, + "port": { + "description": "The default SMTP server port.", + "type": "integer", + "default": 587, + "example": 587, + "format": "int32" + }, + "username": { + "description": "Authentication username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "password": { + "description": "Authentication password.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "encryption": { + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "type": "string", + "example": "none", + "title": "SmtpEncryption", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + }, + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + } + ] + }, + "autoTLS": { + "description": "Enable SMTP AutoTLS feature.", + "type": "boolean", + "default": true, + "example": false + }, + "mailer": { + "description": "The value to use for the X-Mailer header.", + "type": "string", + "default": "", + "example": "<MAILER>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/smtp\/{providerId}": { + "patch": { + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", + "tags": [ + "messaging" + ], + "description": "Update a SMTP provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-smtp-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + }, + "methods": [ + { + "name": "updateSmtpProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + } + }, + { + "name": "updateSMTPProvider", + "namespace": "messaging", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "host": { + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "type": "string", + "default": "", + "example": "<HOST>" + }, + "port": { + "description": "SMTP port.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "username": { + "description": "Authentication username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "password": { + "description": "Authentication password.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "encryption": { + "description": "Encryption type. Can be 'ssl' or 'tls'", + "type": "string", + "example": "none", + "title": "SmtpEncryption", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + }, + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + } + ] + }, + "autoTLS": { + "description": "Enable SMTP AutoTLS feature.", + "type": "boolean", + "example": false, + "nullable": true + }, + "mailer": { + "description": "The value to use for the X-Mailer header.", + "type": "string", + "default": "", + "example": "<MAILER>" + }, + "fromName": { + "description": "Sender Name.", + "type": "string", + "default": "", + "example": "<FROM_NAME>" + }, + "fromEmail": { + "description": "Sender email address.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "replyToName": { + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "type": "string", + "default": "", + "example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "type": "string", + "default": "", + "example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/telesign": { + "post": { + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Telesign provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "customerId": { + "description": "Telesign customer ID.", + "type": "string", + "default": "", + "example": "<CUSTOMER_ID>" + }, + "apiKey": { + "description": "Telesign API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/telesign\/{providerId}": { + "patch": { + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", + "tags": [ + "messaging" + ], + "description": "Update a Telesign provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "customerId": { + "description": "Telesign customer ID.", + "type": "string", + "default": "", + "example": "<CUSTOMER_ID>" + }, + "apiKey": { + "description": "Telesign API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Textmagic provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "username": { + "description": "Textmagic username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "apiKey": { + "description": "Textmagic apiKey.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", + "tags": [ + "messaging" + ], + "description": "Update a Textmagic provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "username": { + "description": "Textmagic username.", + "type": "string", + "default": "", + "example": "<USERNAME>" + }, + "apiKey": { + "description": "Textmagic apiKey.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/twilio": { + "post": { + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Twilio provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "<FROM>" + }, + "accountSid": { + "description": "Twilio account secret ID.", + "type": "string", + "default": "", + "example": "<ACCOUNT_SID>" + }, + "authToken": { + "description": "Twilio authentication token.", + "type": "string", + "default": "", + "example": "<AUTH_TOKEN>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/twilio\/{providerId}": { + "patch": { + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", + "tags": [ + "messaging" + ], + "description": "Update a Twilio provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "accountSid": { + "description": "Twilio account secret ID.", + "type": "string", + "default": "", + "example": "<ACCOUNT_SID>" + }, + "authToken": { + "description": "Twilio authentication token.", + "type": "string", + "default": "", + "example": "<AUTH_TOKEN>" + }, + "from": { + "description": "Sender phone number or alphanumeric sender ID. Format phone numbers with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/vonage": { + "post": { + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Vonage provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/create-vonage-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Provider name.", + "type": "string", + "example": "<NAME>" + }, + "from": { + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "apiKey": { + "description": "Vonage API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "apiSecret": { + "description": "Vonage API secret.", + "type": "string", + "default": "", + "example": "<API_SECRET>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", + "tags": [ + "messaging" + ], + "description": "Update a Vonage provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/update-vonage-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Provider name.", + "type": "string", + "default": "", + "example": "<NAME>" + }, + "enabled": { + "description": "Set as enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "apiKey": { + "description": "Vonage API key.", + "type": "string", + "default": "", + "example": "<API_KEY>" + }, + "apiSecret": { + "description": "Vonage API secret.", + "type": "string", + "default": "", + "example": "<API_SECRET>" + }, + "from": { + "description": "Sender number.", + "type": "string", + "default": "", + "example": "<FROM>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/{providerId}": { + "get": { + "summary": "Get provider", + "operationId": "messagingGetProvider", + "tags": [ + "messaging" + ], + "description": "Get a provider by its unique ID.\n", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/get-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "tags": [ + "messaging" + ], + "description": "Delete a provider by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "providers", + "demo": "messaging\/delete-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", + "tags": [ + "messaging" + ], + "description": "Get a list of all topics from the current Appwrite project.", + "responses": { + "200": { + "description": "Topic list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topicList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/list-topics.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, description, emailTotal, smsTotal, pushTotal", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create topic", + "operationId": "messagingCreateTopic", + "tags": [ + "messaging" + ], + "description": "Create a new topic.", + "responses": { + "201": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/create-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topicId": { + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "type": "string", + "example": "<TOPIC_ID>" + }, + "name": { + "description": "Topic Name.", + "type": "string", + "example": "<NAME>" + }, + "subscribe": { + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "default": [ + "users" + ], + "example": [ + "any" + ], + "items": { + "type": "string" + } + }, + "qos": { + "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "topicId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", + "tags": [ + "messaging" + ], + "description": "Get a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/get-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update topic", + "operationId": "messagingUpdateTopic", + "tags": [ + "messaging" + ], + "description": "Update a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/update-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Topic Name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "subscribe": { + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "type": "array", + "example": [ + "any" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "qos": { + "description": "MQTT delivery quality of service for this topic. 0 is fire-and-forget (delivered only to clients connected at publish time). 1 persists each message and replays it when a client reconnects without having acknowledged it. Null lets the subscriber choose.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "expiry": { + "description": "Message retention in seconds for offline delivery. Max 7 days (604800).", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", + "tags": [ + "messaging" + ], + "description": "Delete a topic by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "topics", + "demo": "messaging\/delete-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", + "tags": [ + "messaging" + ], + "description": "Get a list of all subscribers from the current Appwrite project.", + "responses": { + "200": { + "description": "Subscriber list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriberList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/list-subscribers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", + "tags": [ + "messaging" + ], + "description": "Create a new subscriber.", + "responses": { + "201": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/create-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "JWT": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "targetId": { + "description": "Target ID. The target ID to link to the specified Topic ID.", + "type": "string", + "example": "<TARGET_ID>" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", + "tags": [ + "messaging" + ], + "description": "Get a subscriber by its unique ID.\n", + "responses": { + "200": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/get-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", + "tags": [ + "messaging" + ], + "description": "Delete a subscriber by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "subscribers", + "demo": "messaging\/delete-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "JWT": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SUBSCRIBER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo": { + "get": { + "summary": "List databases", + "operationId": "mongoList", + "tags": [ + "mongo" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "mongoCreate", + "tags": [ + "mongo" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/mongo\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "mongoListSpecifications", + "tags": [ + "mongo" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mongo\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "mongoGet", + "tags": [ + "mongo" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "mongoUpdate", + "tags": [ + "mongo" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "mongoDelete", + "tags": [ + "mongo" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "mongoListBackups", + "tags": [ + "mongo" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "mongoCreateBackup", + "tags": [ + "mongo" + ], + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", + "responses": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "mongoListBackupPolicies", + "tags": [ + "mongo" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "mongoCreateBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "mongoGetBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "mongoUpdateBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "mongoDeleteBackupPolicy", + "tags": [ + "mongo" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mongo\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "mongoUpdateBackupStorage", + "tags": [ + "mongo" + ], + "description": "Configure off-cluster backup storage for a dedicated database. Supports S3, GCS, and Azure Blob Storage destinations. Backups will be stored to the configured destination in addition to on-cluster storage.", + "responses": { + "200": { + "description": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "mongoGetBackup", + "tags": [ + "mongo" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "mongoDeleteBackup", + "tags": [ + "mongo" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mongo\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "mongoListBranches", + "tags": [ + "mongo" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "mongoCreateBranch", + "tags": [ + "mongo" + ], + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "mongoDeleteBranch", + "tags": [ + "mongo" + ], + "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mongo\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "mongoUpdateCredentials", + "tags": [ + "mongo" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "mongoCreateFailover", + "tags": [ + "mongo" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "mongo\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "mongoUpdateMaintenance", + "tags": [ + "mongo" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "mongoCreateMigration", + "tags": [ + "mongo" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "mongo\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "mongoListOperations", + "tags": [ + "mongo" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "mongo\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/mongo\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "mongoGetPitr", + "tags": [ + "mongo" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "mongo\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "mongoGetReplicas", + "tags": [ + "mongo" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "mongo\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "mongoListRestorations", + "tags": [ + "mongo" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "mongoCreateRestoration", + "tags": [ + "mongo" + ], + "description": "Restore a database from a backup or to a specific point in time (PITR). For backup restoration, provide a backupId. For PITR, provide a targetTime as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/mongo\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "mongoGetRestoration", + "tags": [ + "mongo" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mongo\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "mongoGetStatus", + "tags": [ + "mongo" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mongo\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "mongoCreateUpgrade", + "tags": [ + "mongo" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mongo", + "demo": "mongo\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/mysql": { + "get": { + "summary": "List databases", + "operationId": "mysqlList", + "tags": [ + "mysql" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "mysqlCreate", + "tags": [ + "mysql" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/mysql\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "mysqlListSpecifications", + "tags": [ + "mysql" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/mysql\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "mysqlGet", + "tags": [ + "mysql" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "mysqlUpdate", + "tags": [ + "mysql" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "mysqlDelete", + "tags": [ + "mysql" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "mysqlListBackups", + "tags": [ + "mysql" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "mysqlCreateBackup", + "tags": [ + "mysql" + ], + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", + "responses": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "mysqlListBackupPolicies", + "tags": [ + "mysql" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "mysqlCreateBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "mysqlGetBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "mysqlUpdateBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "mysqlDeleteBackupPolicy", + "tags": [ + "mysql" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "mysql\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "mysqlUpdateBackupStorage", + "tags": [ + "mysql" + ], + "description": "Configure off-cluster backup storage for a dedicated database. Supports S3, GCS, and Azure Blob Storage destinations. Backups will be stored to the configured destination in addition to on-cluster storage.", + "responses": { + "200": { + "description": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "mysqlGetBackup", + "tags": [ + "mysql" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "mysqlDeleteBackup", + "tags": [ + "mysql" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "mysql\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "mysqlListBranches", + "tags": [ + "mysql" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "mysqlCreateBranch", + "tags": [ + "mysql" + ], + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "mysqlDeleteBranch", + "tags": [ + "mysql" + ], + "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "mysql\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "mysqlUpdateCredentials", + "tags": [ + "mysql" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/executions": { + "post": { + "summary": "Create execution", + "operationId": "mysqlCreateExecution", + "tags": [ + "mysql" + ], + "description": "Execute SQL through the console-facing Cloud endpoint. Cloud proxies through the edge platform to the per-database SQL API sidecar. Application traffic should bypass cloud entirely and POST directly to the per-database hostname: `https:\/\/db-{project}-{db}.{region}.appwrite.center\/v1\/sql\/executions` with an `X-Appwrite-Key` header \u2014 that path scales to the whole DB fleet without a per-query cloud round-trip. The statement type must be on the database's configured allow-list. Use bound parameters for any user-supplied values \u2014 the API does not interpolate raw strings.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "mysql\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "description": "SQL statement to execute. Exactly one statement per request.", + "type": "string", + "example": "<SQL>" + }, + "bindings": { + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "timeoutSeconds": { + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "mysqlCreateFailover", + "tags": [ + "mysql" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "mysql\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "mysqlUpdateMaintenance", + "tags": [ + "mysql" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "mysqlCreateMigration", + "tags": [ + "mysql" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "mysql\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "mysqlListOperations", + "tags": [ + "mysql" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "mysql\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/mysql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "mysqlGetPitr", + "tags": [ + "mysql" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "mysql\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/pooler": { + "get": { + "summary": "Get pooler", + "operationId": "mysqlGetPooler", + "tags": [ + "mysql" + ], + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "mysql\/get-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update pooler", + "operationId": "mysqlUpdatePooler", + "tags": [ + "mysql" + ], + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "mysql\/update-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "type": "string", + "example": "transaction", + "nullable": true + }, + "maxConnections": { + "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", + "type": "integer", + "example": 10, + "format": "int32", + "nullable": true + }, + "defaultPoolSize": { + "description": "Default pool size per user.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "readWriteSplitting": { + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "poolerCpuRequest": { + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "type": "string", + "example": "<POOLER_CPU_REQUEST>", + "nullable": true + }, + "poolerCpuLimit": { + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "type": "string", + "example": "<POOLER_CPU_LIMIT>", + "nullable": true + }, + "poolerMemoryRequest": { + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "type": "string", + "example": "<POOLER_MEMORY_REQUEST>", + "nullable": true + }, + "poolerMemoryLimit": { + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "type": "string", + "example": "<POOLER_MEMORY_LIMIT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "mysqlGetReplicas", + "tags": [ + "mysql" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "mysql\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "mysqlListRestorations", + "tags": [ + "mysql" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "mysqlCreateRestoration", + "tags": [ + "mysql" + ], + "description": "Restore a database from a backup or to a specific point in time (PITR). For backup restoration, provide a backupId. For PITR, provide a targetTime as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/mysql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "mysqlGetRestoration", + "tags": [ + "mysql" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "mysql\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "mysqlGetStatus", + "tags": [ + "mysql" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/mysql\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "mysqlCreateUpgrade", + "tags": [ + "mysql" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mysql", + "demo": "mysql\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/approve": { + "post": { + "summary": "Approve OAuth2", + "operationId": "oauth2Approve", + "tags": [ + "oauth2" + ], + "description": "Approve an OAuth2 grant after the user gives consent. Returns the `redirectUrl` the end user should be sent to. The consent screen may optionally pass enriched `authorization_details` to record the concrete resources the user selected. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Approve", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Approve" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/approve.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + }, + "authorization_details": { + "description": "Enriched `authorization_details` the user consented to, replacing what the client requested. Each entry must use a `type` the project accepts. Optional; omit to keep the originally requested details.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "scope": { + "description": "Space-separated scopes the user consented to. Must be a subset of the scopes originally requested; identity scopes such as `openid` are always retained. Optional; omit to keep the originally requested scopes.", + "type": "string", + "default": "", + "example": "<SCOPE>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/authorize": { + "get": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2Authorize", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "client_id", + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "required": false, + "schema": { + "type": "string", + "example": "<CLIENT_ID>", + "default": "" + }, + "in": "query" + }, + { + "name": "redirect_uri", + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "required": false, + "schema": { + "type": "string", + "format": "url", + "example": "https:\/\/example.com", + "default": "" + }, + "in": "query" + }, + { + "name": "response_type", + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "required": false, + "schema": { + "type": "string", + "example": "", + "default": "" + }, + "in": "query" + }, + { + "name": "scope", + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "required": false, + "schema": { + "type": "string", + "example": "<SCOPE>", + "default": "" + }, + "in": "query" + }, + { + "name": "state", + "description": "OAuth2 state. You receive this back in the redirect URI.", + "required": false, + "schema": { + "type": "string", + "example": "<STATE>", + "default": "" + }, + "in": "query" + }, + { + "name": "nonce", + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "required": false, + "schema": { + "type": "string", + "example": "<NONCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge", + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "<CODE_CHALLENGE>", + "default": "" + }, + "in": "query" + }, + { + "name": "code_challenge_method", + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "required": false, + "schema": { + "type": "string", + "example": "s256", + "default": "" + }, + "in": "query" + }, + { + "name": "prompt", + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "required": false, + "schema": { + "type": "string", + "example": "<PROMPT>", + "default": "" + }, + "in": "query" + }, + { + "name": "max_age", + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0 + }, + "in": "query" + }, + { + "name": "authorization_details", + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "required": false, + "schema": { + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "default": "" + }, + "in": "query" + }, + { + "name": "resource", + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "audience", + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "required": false, + "schema": { + "type": "string", + "example": "<AUDIENCE>", + "default": "" + }, + "in": "query" + }, + { + "name": "request_uri", + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "required": false, + "schema": { + "type": "string", + "example": "<REQUEST_URI>", + "default": "" + }, + "in": "query" + } + ] + }, + "post": { + "summary": "OAuth2 Authorize", + "operationId": "oauth2AuthorizePost", + "tags": [ + "oauth2" + ], + "description": "Begin the OAuth2 authorization flow. When called without a session, the user is redirected to the consent screen without grant ID. When called with a session, the redirect URL includes param for grant ID. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Authorize", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Authorize" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/authorize.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type. One of `code` (Authorization Code Flow), `id_token` (Implicit Flow, OIDC login only), or `code id_token` (Hybrid Flow).", + "type": "string", + "default": "", + "example": "" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age paraleter for customization of consent screen. Maximum allowable elapsed time in seconds since the user last authenticated. If exceeded, re-authentication is required.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + }, + "request_uri": { + "description": "OAuth2 authorization request handle returned by the pushed authorization request endpoint.", + "type": "string", + "default": "", + "example": "<REQUEST_URI>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/device_authorization": { + "post": { + "summary": "OAuth2 Device Authorization", + "operationId": "oauth2CreateDeviceAuthorization", + "tags": [ + "oauth2" + ], + "description": "Start the OAuth2 Device Authorization Grant. Returns the device code, user code, verification URL, expiration, and polling interval.", + "responses": { + "200": { + "description": "OAuth2 Device Authorization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2DeviceAuthorization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-device-authorization.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + } + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants": { + "post": { + "summary": "Create OAuth2 Grant", + "operationId": "oauth2CreateGrant", + "tags": [ + "oauth2" + ], + "description": "Exchange a device flow user code for an OAuth2 grant. The authenticated user is bound to the pending grant. Pass the returned grant ID to the get grant endpoint to render the consent screen, then to the approve or reject endpoint to complete the flow.", + "responses": { + "201": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/create-grant.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "user_code": { + "description": "User code displayed on the device.", + "type": "string", + "example": "<USER_CODE>" + } + }, + "required": [ + "user_code" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/grants\/{grant_id}": { + "get": { + "summary": "Get OAuth2 Grant", + "operationId": "oauth2GetGrant", + "tags": [ + "oauth2" + ], + "description": "Get an OAuth2 grant by its ID. Used by the consent screen to display the details of the authorization the user is being asked to approve. A grant can only be read by the user it belongs to, or by server SDK.", + "responses": { + "200": { + "description": "OAuth2 Grant", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Grant" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "grants", + "demo": "oauth2\/get-grant.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client that created grant during authorization exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "grant_id", + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "required": true, + "schema": { + "type": "string", + "example": "<GRANT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/oauth2\/{project_id}\/introspect": { + "post": { + "summary": "OAuth2 Introspect", + "operationId": "oauth2Introspect", + "tags": [ + "oauth2" + ], + "description": "Introspect an OAuth2 access token or refresh token. Authenticate with an API key holding the `oauth2.introspect` scope to introspect any token in the project, or with the client credentials of the app the token was issued to.", + "responses": { + "200": { + "description": "OAuth2 Introspection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Introspection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/introspect.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access token or refresh token to introspect.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to introspect. Can be one of: `access_token` or `refresh_token`.", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/organizations": { + "get": { + "summary": "OAuth2 List Accessible Organizations", + "operationId": "oauth2ListOrganizations", + "tags": [ + "oauth2" + ], + "description": "List the organizations the OAuth2 access token can access. Resolves the token's `organization` authorization details, expanding the `*` wildcard into the concrete set of organizations the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible organizations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2OrganizationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-organizations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.organizations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of organizations to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of organizations to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/par": { + "post": { + "summary": "OAuth2 PAR", + "operationId": "oauth2CreatePAR", + "tags": [ + "oauth2" + ], + "description": "Store an OAuth2 authorization request server-side and receive a short-lived request_uri handle for the authorize endpoint.", + "responses": { + "201": { + "description": "OAuth2 PAR", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2PAR" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/create-par.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "example": "<CLIENT_ID>" + }, + "redirect_uri": { + "description": "Redirect URI where visitor will be redirected after authorization, whether successful or not.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "response_type": { + "description": "OAuth2 \/ OIDC response type.", + "type": "string", + "example": "code" + }, + "scope": { + "description": "Space-separated OAuth2 scopes. Can include project scopes, and built-in scopes: `openid`, `email`, `profile`, `phone`.", + "type": "string", + "default": "", + "example": "<SCOPE>" + }, + "state": { + "description": "OAuth2 state. You receive this back in the redirect URI.", + "type": "string", + "default": "", + "example": "<STATE>" + }, + "nonce": { + "description": "OIDC nonce parameter to prevent replay attacks. Required when response_type includes `id_token`.", + "type": "string", + "default": "", + "example": "<NONCE>" + }, + "code_challenge": { + "description": "PKCE code challenge. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "<CODE_CHALLENGE>" + }, + "code_challenge_method": { + "description": "PKCE code challenge method. Required when OAuth2 app is public.", + "type": "string", + "default": "", + "example": "s256" + }, + "prompt": { + "description": "OIDC prompt parameter for customization of consent screen. Space-separated list of: none, login, consent, select_account.", + "type": "string", + "default": "", + "example": "<PROMPT>" + }, + "max_age": { + "description": "OIDC max_age parameter for customization of consent screen.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "authorization_details": { + "description": "Rich authorization request. JSON array of objects, each with a `type` and project-defined fields", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "client_id", + "redirect_uri", + "response_type" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/projects": { + "get": { + "summary": "OAuth2 List Accessible Projects", + "operationId": "oauth2ListProjects", + "tags": [ + "oauth2" + ], + "description": "List the projects the OAuth2 access token can access. Resolves the token's `project` authorization details, expanding the `*` wildcard into the concrete set of projects the user can see.", + "responses": { + "200": { + "description": "OAuth2 accessible projects list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2ProjectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platform", + "demo": "oauth2\/list-projects.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.projects.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID of the console project the OAuth2 access token was issued for.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of projects to return. Between 1 and 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of projects to skip before returning results. Used for pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/oauth2\/{project_id}\/reject": { + "post": { + "summary": "Reject OAuth2", + "operationId": "oauth2Reject", + "tags": [ + "oauth2" + ], + "description": "Reject an OAuth2 grant when the user denies consent. Returns the `redirectUrl` the end user should be sent to with an `access_denied` error. You can pass Accept header of `application\/json` to receive a JSON response instead of a redirect.", + "responses": { + "200": { + "description": "OAuth2 Reject", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Reject" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "authorization", + "demo": "oauth2\/reject.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "oauth2.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_id": { + "description": "Grant ID made during authorization, provided to consent screen in URL search params.", + "type": "string", + "example": "<GRANT_ID>" + } + }, + "required": [ + "grant_id" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/revoke": { + "post": { + "summary": "OAuth2 Revoke", + "operationId": "oauth2Revoke", + "tags": [ + "oauth2" + ], + "description": "Revoke an OAuth2 access token or refresh token.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/revoke.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "description": "The access or refresh token to revoke.", + "type": "string", + "example": "<TOKEN>" + }, + "token_type_hint": { + "description": "Type of token to revoke (access_token or refresh_token).", + "type": "string", + "default": "", + "example": "access_token" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps; omitted for public apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + } + }, + "required": [ + "token" + ] + } + } + } + } + } + }, + "\/oauth2\/{project_id}\/token": { + "post": { + "summary": "OAuth2 Token", + "operationId": "oauth2CreateToken", + "tags": [ + "oauth2" + ], + "description": "Exchange an OAuth2 authorization code, refresh token, or device code for access and refresh tokens.", + "responses": { + "200": { + "description": "OAuth2 Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oauth2Token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "oauth2\/create-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "config": { + "project_id": "project" + }, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "project_id", + "description": "Project ID in which OAuth2 client exists.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "grant_type": { + "description": "OAuth2 grant type. Can be one of: `authorization_code`, `refresh_token`, `urn:ietf:params:oauth:grant-type:device_code`.", + "type": "string", + "example": "<GRANT_TYPE>" + }, + "code": { + "description": "Authorization code to be exchanged for access and refresh tokens. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "<CODE>" + }, + "refresh_token": { + "description": "Refresh token to be exchanged for a new access and refresh tokens. Required for `refresh_token` grant type.", + "type": "string", + "default": "", + "example": "<REFRESH_TOKEN>" + }, + "device_code": { + "description": "Device code obtained from the device authorization endpoint. Required for `urn:ietf:params:oauth:grant-type:device_code` grant type.", + "type": "string", + "default": "", + "example": "<DEVICE_CODE>" + }, + "client_id": { + "description": "OAuth2 client ID. Either a registered app ID or an HTTPS client ID metadata document URL.", + "type": "string", + "default": "", + "example": "<CLIENT_ID>" + }, + "client_secret": { + "description": "OAuth2 client secret. Required for confidential apps.", + "type": "string", + "default": "", + "example": "<CLIENT_SECRET>" + }, + "code_verifier": { + "description": "PKCE code verifier. Required for public apps.", + "type": "string", + "default": "", + "example": "<CODE_VERIFIER>" + }, + "redirect_uri": { + "description": "Redirect URI. Required for `authorization_code` grant type.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "resource": { + "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "audience": { + "description": "Compatibility alias for a single OAuth2 resource indicator URI.", + "type": "string", + "default": "", + "example": "<AUDIENCE>" + } + }, + "required": [ + "grant_type" + ] + }, + "examples": { + "authorizationCode": { + "summary": "Exchange an authorization code", + "value": { + "grant_type": "authorization_code", + "code": "<CODE>", + "redirect_uri": "https:\/\/example.com\/callback", + "client_id": "<CLIENT_ID>", + "code_verifier": "<CODE_VERIFIER>" + } + }, + "refreshToken": { + "summary": "Refresh an access token", + "value": { + "grant_type": "refresh_token", + "refresh_token": "<REFRESH_TOKEN>", + "client_id": "<CLIENT_ID>" + } + }, + "deviceCode": { + "summary": "Exchange a device code", + "value": { + "grant_type": "urn:ietf:params:oauth:grant-type:device_code", + "device_code": "<DEVICE_CODE>", + "client_id": "<CLIENT_ID>" + } + } + } + } + } + } + } + }, + "\/organization": { + "get": { + "summary": "Get organization", + "operationId": "organizationGet", + "tags": [ + "organization" + ], + "description": "Get the current organization.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ] + }, + "put": { + "summary": "Update organization", + "operationId": "organizationUpdate", + "tags": [ + "organization" + ], + "description": "Update the current organization's name.", + "responses": { + "200": { + "description": "Organization", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/organization" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New organization name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization", + "operationId": "organizationDelete", + "tags": [ + "organization" + ], + "description": "Delete the current organization. All projects that belong to the organization are deleted as well.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "organization\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ] + } + }, + "\/organization\/installations": { + "get": { + "summary": "List Installations", + "operationId": "organizationListInstallations", + "tags": [ + "organization" + ], + "description": "List app installations on the organization. Any organization member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "organizationCreateInstallation", + "tags": [ + "organization" + ], + "description": "Install an app on the organization. Only organization members with the owner role can install apps. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/organization\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "organizationGetInstallation", + "tags": [ + "organization" + ], + "description": "Get an app installation on the organization by its unique ID. Any organization member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "organizationUpdateInstallation", + "tags": [ + "organization" + ], + "description": "Update an app installation on the organization. Only organization members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "organizationDeleteInstallation", + "tags": [ + "organization" + ], + "description": "Uninstall an app from the organization by its installation ID. Only organization members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "installations", + "demo": "organization\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "organization.installations.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/memberships": { + "get": { + "summary": "List organization memberships", + "operationId": "organizationListMemberships", + "tags": [ + "organization" + ], + "description": "Get a list of all memberships from the current organization.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create organization membership", + "operationId": "organizationCreateMembership", + "tags": [ + "organization" + ], + "description": "Invite a new member to join the current organization. An email with a link to join the organization will be sent to the new member's email address. If member doesn't exist in the project it will be automatically created.", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new organization member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to the organization.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "description": "Array of strings. Use this param to set the user roles in the organization. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "items": { + "type": "string" + } + }, + "url": { + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new organization member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/organization\/memberships\/{membershipId}": { + "get": { + "summary": "Get organization membership", + "operationId": "organizationGetMembership", + "tags": [ + "organization" + ], + "description": "Get a membership from the current organization by its unique ID.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization membership", + "operationId": "organizationUpdateMembership", + "tags": [ + "organization" + ], + "description": "Modify the roles of a member in the current organization.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "description": "An array of strings. Use this param to set the user's roles in the organization. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "roles" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization membership", + "operationId": "organizationDeleteMembership", + "tags": [ + "organization" + ], + "description": "Remove a member from the current organization. The member is removed whether they accepted the invitation or not; a pending invitation is revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "organization\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.memberships.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/projects": { + "get": { + "summary": "List organization projects", + "operationId": "organizationListProjects", + "tags": [ + "organization" + ], + "description": "Get a list of all projects. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Projects List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/projectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/list-projects.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, teamId, labels, search, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create organization project", + "operationId": "organizationCreateProject", + "tags": [ + "organization" + ], + "description": "Create a new project.", + "responses": { + "201": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/create-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "projectId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PROJECT_ID>" + }, + "name": { + "description": "Project name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "region": { + "description": "Project Region.", + "type": "string", + "example": "fra", + "title": "Region", + "oneOf": [ + { + "type": "string", + "enum": [ + "fra" + ], + "title": "fra" + }, + { + "type": "string", + "enum": [ + "nyc" + ], + "title": "nyc" + }, + { + "type": "string", + "enum": [ + "syd" + ], + "title": "syd" + }, + { + "type": "string", + "enum": [ + "sfo" + ], + "title": "sfo" + }, + { + "type": "string", + "enum": [ + "sgp" + ], + "title": "sgp" + }, + { + "type": "string", + "enum": [ + "tor" + ], + "title": "tor" + } + ] + } + }, + "required": [ + "projectId", + "name" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}": { + "get": { + "summary": "Get organization project", + "operationId": "organizationGetProject", + "tags": [ + "organization" + ], + "description": "Get a project.", + "responses": { + "200": { + "description": "Project", + "content": { + "": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/get-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization project", + "operationId": "organizationUpdateProject", + "tags": [ + "organization" + ], + "description": "Update a project by its unique ID.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/update-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Project name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization project", + "operationId": "organizationDeleteProject", + "tags": [ + "organization" + ], + "description": "Delete a project by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "projects", + "demo": "organization\/delete-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/projects\/{projectId}\/keys": { + "get": { + "summary": "List project keys", + "operationId": "organizationListProjectKeys", + "tags": [ + "organization" + ], + "description": "Get a list of all API keys of a project in your organization.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/list-project-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/organization\/projects\/{projectId}\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "organizationCreateEphemeralProjectKey", + "tags": [ + "organization" + ], + "description": "Create a new ephemeral API key for a project in your organization. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", + "responses": { + "201": { + "description": "Ephemeral Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/ephemeralKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/create-ephemeral-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "duration": { + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "type": "integer", + "example": 600, + "format": "int32" + } + }, + "required": [ + "scopes", + "duration" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "organizationGetProjectKey", + "tags": [ + "organization" + ], + "description": "Get a project key by its unique ID.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/get-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.read", + "keys.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project key", + "operationId": "organizationUpdateProjectKey", + "tags": [ + "organization" + ], + "description": "Update a project key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/update-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "organizationDeleteProjectKey", + "tags": [ + "organization" + ], + "description": "Delete a project key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "organization\/delete-project-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "organization.projects.keys.write", + "keys.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Organization": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/ping": { + "get": { + "summary": "Test the connection between the Appwrite and the SDK.", + "operationId": "pingGet", + "tags": [ + "ping" + ], + "description": "Send a ping to project as part of onboarding.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "ping\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "global", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [], + "Session": [] + } + ] + } + }, + "\/postgresql": { + "get": { + "summary": "List databases", + "operationId": "postgresqlList", + "tags": [ + "postgresql" + ], + "description": "List all dedicated databases. Results support pagination.", + "responses": { + "200": { + "description": "Dedicated databases list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "postgresqlCreate", + "tags": [ + "postgresql" + ], + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", + "responses": { + "201": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database display name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "version": { + "description": "Database engine version. Defaults to latest for selected engine.", + "type": "string", + "example": "17", + "nullable": true + }, + "specification": { + "description": "Specification identifier. Drives the allocated CPU, memory, storage, storage class, and connection ceiling.", + "type": "string", + "default": "s-1vcpu-1gb", + "example": "<SPECIFICATION>" + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes of inactivity before container scales to zero.", + "type": "integer", + "default": 15, + "example": 5, + "format": "int32" + }, + "pitr": { + "description": "Enable point-in-time recovery (PITR). Continuously archives changes so the database can be restored to any moment within the retention window.", + "type": "boolean", + "default": true, + "example": false + }, + "pitrRetentionDays": { + "description": "Number of days to retain PITR data.", + "type": "integer", + "default": 7, + "example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "default": true, + "example": false + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "default": 85, + "example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/postgresql\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "postgresqlListSpecifications", + "tags": [ + "postgresql" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/postgresql\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "postgresqlGet", + "tags": [ + "postgresql" + ], + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update database", + "operationId": "postgresqlUpdate", + "tags": [ + "postgresql" + ], + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Specification changes (cpu, memory, storage) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database display name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "status": { + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume (also recovers a failed database whose infrastructure is healthy), or \"inactive\" to spin down a shared-pool database.", + "type": "string", + "example": "ready", + "nullable": true + }, + "specification": { + "description": "Specification. Changes cpu, memory, storage, connection ceiling, and node pool based on specification config. Resource changes are applied via rolling cutover with zero downtime.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5). High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode preference. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + }, + "networkIdleTimeoutSeconds": { + "description": "Connection idle timeout in seconds (60-86400).", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "networkIPAllowlist": { + "description": "IP addresses\/CIDR ranges allowed to connect.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "idleTimeoutMinutes": { + "description": "Minutes before container scales to zero.", + "type": "integer", + "example": 5, + "format": "int32", + "nullable": true + }, + "pitr": { + "description": "Enable or disable point-in-time recovery (PITR).", + "type": "boolean", + "example": false, + "nullable": true + }, + "pitrRetentionDays": { + "description": "Days to retain PITR data.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "storageAutoscaling": { + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "type": "boolean", + "example": false, + "nullable": true + }, + "storageAutoscalingThresholdPercent": { + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "type": "integer", + "example": 50, + "format": "int32", + "nullable": true + }, + "storageAutoscalingMaxGb": { + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "metricsTraceSampleRate": { + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "type": "number", + "format": "float", + "nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "sqlApiEnabled": { + "description": "Enable the SQL API sidecar for this database.", + "type": "boolean", + "example": false, + "nullable": true + }, + "sqlApiAllowedStatements": { + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "sqlApiMaxRows": { + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "sqlApiMaxBytes": { + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "type": "integer", + "example": 1024, + "format": "int32", + "nullable": true + }, + "sqlApiTimeoutSeconds": { + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "postgresqlDelete", + "tags": [ + "postgresql" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up. Deletion is allowed from any state, and repeating the call re-dispatches the cleanup.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/backups": { + "get": { + "summary": "List backups", + "operationId": "postgresqlListBackups", + "tags": [ + "postgresql" + ], + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "BackupList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/list-backups.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup", + "operationId": "postgresqlCreateBackup", + "tags": [ + "postgresql" + ], + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", + "responses": { + "202": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/create-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/policies": { + "get": { + "summary": "List backup policies", + "operationId": "postgresqlListBackupPolicies", + "tags": [ + "postgresql" + ], + "description": "List scheduled backup policies for a dedicated database.", + "responses": { + "200": { + "description": "Backup policy list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/list-backup-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create backup policy", + "operationId": "postgresqlCreateBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Create a scheduled backup policy for a dedicated database.", + "responses": { + "201": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/create-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "policyId": { + "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<POLICY_ID>" + }, + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "type": { + "description": "Backup type: full or incremental.", + "type": "string", + "default": "full", + "example": "full" + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "policyId", + "name", + "schedule", + "retention" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/policies\/{policyId}": { + "get": { + "summary": "Get backup policy", + "operationId": "postgresqlGetBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Get a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/get-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update backup policy", + "operationId": "postgresqlUpdateBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Update a scheduled backup policy for a dedicated database.", + "responses": { + "200": { + "description": "backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/backupPolicy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/update-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Policy name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "schedule": { + "description": "Schedule CRON syntax.", + "type": "string" + }, + "retention": { + "description": "Days to keep backups before deletion.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Is policy enabled? When disabled, no backups will be taken.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete backup policy", + "operationId": "postgresqlDeleteBackupPolicy", + "tags": [ + "postgresql" + ], + "description": "Delete a scheduled backup policy for a dedicated database. Backups already taken by the policy are kept until their retention expires.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "postgresql\/delete-backup-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "policyId", + "description": "Policy ID.", + "required": true, + "schema": { + "type": "string", + "example": "<POLICY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update backup storage", + "operationId": "postgresqlUpdateBackupStorage", + "tags": [ + "postgresql" + ], + "description": "Configure off-cluster backup storage for a dedicated database. Supports S3, GCS, and Azure Blob Storage destinations. Backups will be stored to the configured destination in addition to on-cluster storage.", + "responses": { + "200": { + "description": "BackupStorageConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/update-backup-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "type": "string", + "example": "s3" + }, + "bucket": { + "description": "Storage bucket or container name.", + "type": "string", + "example": "<BUCKET>" + }, + "region": { + "description": "Storage region.", + "type": "string", + "default": "", + "example": "<REGION>" + }, + "prefix": { + "description": "Object key prefix for backups.", + "type": "string", + "default": "backups\/", + "example": "<PREFIX>" + }, + "endpoint": { + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "type": "string", + "default": "", + "example": "<ENDPOINT>" + }, + "accessKey": { + "description": "Access key or client ID for authentication.", + "type": "string", + "example": "<ACCESS_KEY>" + }, + "secretKey": { + "description": "Secret key or service account JSON for authentication.", + "type": "string", + "example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/backups\/{backupId}": { + "get": { + "summary": "Get backup", + "operationId": "postgresqlGetBackup", + "tags": [ + "postgresql" + ], + "description": "Get details of a specific database backup including its status, size, and timestamps.", + "responses": { + "200": { + "description": "Backup", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/get-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete backup", + "operationId": "postgresqlDeleteBackup", + "tags": [ + "postgresql" + ], + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "backups", + "demo": "postgresql\/delete-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BACKUP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/branches": { + "get": { + "summary": "List branches", + "operationId": "postgresqlListBranches", + "tags": [ + "postgresql" + ], + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", + "responses": { + "200": { + "description": "BranchList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/list-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create branch", + "operationId": "postgresqlCreateBranch", + "tags": [ + "postgresql" + ], + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/create-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "default": "", + "example": "<BRANCH_ID>" + }, + "ttl": { + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "type": "integer", + "default": 86400, + "example": 300, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete branch", + "operationId": "postgresqlDeleteBranch", + "tags": [ + "postgresql" + ], + "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "branches", + "demo": "postgresql\/delete-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BRANCH_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/credentials": { + "patch": { + "summary": "Update credentials", + "operationId": "postgresqlUpdateCredentials", + "tags": [ + "postgresql" + ], + "description": "Queue a rotation of the primary connection credentials for a dedicated database. A hibernated database is woken by the worker before rotation. List database operations until the returned operation reaches a terminal status, then fetch the database again for the refreshed connection string.", + "responses": { + "202": { + "description": "Operation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update-credentials.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/executions": { + "post": { + "summary": "Create execution", + "operationId": "postgresqlCreateExecution", + "tags": [ + "postgresql" + ], + "description": "Execute SQL through the console-facing Cloud endpoint. Cloud proxies through the edge platform to the per-database SQL API sidecar. Application traffic should bypass cloud entirely and POST directly to the per-database hostname: `https:\/\/db-{project}-{db}.{region}.appwrite.center\/v1\/sql\/executions` with an `X-Appwrite-Key` header \u2014 that path scales to the whole DB fleet without a per-query cloud round-trip. The statement type must be on the database's configured allow-list. Use bound parameters for any user-supplied values \u2014 the API does not interpolate raw strings.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "executions", + "demo": "postgresql\/create-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "description": "SQL statement to execute. Exactly one statement per request.", + "type": "string", + "example": "<SQL>" + }, + "bindings": { + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "type": "object", + "default": {}, + "example": {}, + "nullable": true + }, + "timeoutSeconds": { + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/extensions": { + "get": { + "summary": "List extensions", + "operationId": "postgresqlListExtensions", + "tags": [ + "postgresql" + ], + "description": "List installed and available extensions for a PostgreSQL database.", + "responses": { + "200": { + "description": "Extensions", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/list-extensions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create extension", + "operationId": "postgresqlCreateExtension", + "tags": [ + "postgresql" + ], + "description": "Install a database extension. Only available for PostgreSQL databases. The install runs asynchronously; poll the extensions list endpoint for status.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/create-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/extensions\/{extensionName}": { + "delete": { + "summary": "Delete extension", + "operationId": "postgresqlDeleteExtension", + "tags": [ + "postgresql" + ], + "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "extensions", + "demo": "postgresql\/delete-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "extensionName", + "description": "Extension name to uninstall.", + "required": true, + "schema": { + "type": "string", + "example": "<EXTENSION_NAME>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "postgresqlCreateFailover", + "tags": [ + "postgresql" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "postgresql\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update maintenance", + "operationId": "postgresqlUpdateMaintenance", + "tags": [ + "postgresql" + ], + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/update-maintenance.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "day": { + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "type": "string", + "example": "sun" + }, + "hourUtc": { + "description": "Hour in UTC (0-23) for maintenance window start.", + "type": "integer", + "example": 0, + "format": "int32" + } + }, + "required": [ + "day", + "hourUtc" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/migrations": { + "post": { + "summary": "Create migration", + "operationId": "postgresqlCreateMigration", + "tags": [ + "postgresql" + ], + "description": "Migrate a database between shared and dedicated types. Shared to dedicated provisions an always-on dedicated instance; dedicated to shared converts to a serverless instance that scales to zero when idle. Data is copied to the target with a brief read-only window during cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "postgresql\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "type": "string", + "example": "shared" + }, + "specification": { + "description": "Target specification to provision when migrating to dedicated. Ignored for shared. Defaults to the database's current specification.", + "type": "string", + "example": "<SPECIFICATION>", + "nullable": true + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "postgresqlListOperations", + "tags": [ + "postgresql" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "postgresql\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/postgresql\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR", + "operationId": "postgresqlGetPitr", + "tags": [ + "postgresql" + ], + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", + "responses": { + "200": { + "description": "PITRWindows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pitr", + "demo": "postgresql\/get-pitr.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/pooler": { + "get": { + "summary": "Get pooler", + "operationId": "postgresqlGetPooler", + "tags": [ + "postgresql" + ], + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "postgresql\/get-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update pooler", + "operationId": "postgresqlUpdatePooler", + "tags": [ + "postgresql" + ], + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "pooler", + "demo": "postgresql\/update-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "type": "string", + "example": "transaction", + "nullable": true + }, + "maxConnections": { + "description": "Client-connection ceiling the pooler accepts. Supported on MySQL and MariaDB only; the PostgreSQL pooler has no client cap, so set networkMaxConnections on the database instead.", + "type": "integer", + "example": 10, + "format": "int32", + "nullable": true + }, + "defaultPoolSize": { + "description": "Default pool size per user.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "readWriteSplitting": { + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "type": "boolean", + "example": false, + "nullable": true + }, + "poolerCpuRequest": { + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "type": "string", + "example": "<POOLER_CPU_REQUEST>", + "nullable": true + }, + "poolerCpuLimit": { + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "type": "string", + "example": "<POOLER_CPU_LIMIT>", + "nullable": true + }, + "poolerMemoryRequest": { + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "type": "string", + "example": "<POOLER_MEMORY_REQUEST>", + "nullable": true + }, + "poolerMemoryLimit": { + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "type": "string", + "example": "<POOLER_MEMORY_LIMIT>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "postgresqlGetReplicas", + "tags": [ + "postgresql" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "postgresql\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/restorations": { + "get": { + "summary": "List restorations", + "operationId": "postgresqlListRestorations", + "tags": [ + "postgresql" + ], + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", + "responses": { + "200": { + "description": "Dedicated database restorations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/list-restorations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by restoration status.", + "required": false, + "schema": { + "type": "string", + "example": "pending" + }, + "in": "query" + }, + { + "name": "type", + "description": "Filter by restoration type.", + "required": false, + "schema": { + "type": "string", + "example": "backup" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of restorations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create restoration", + "operationId": "postgresqlCreateRestoration", + "tags": [ + "postgresql" + ], + "description": "Restore a database from a backup or to a specific point in time (PITR). For backup restoration, provide a backupId. For PITR, provide a targetTime as an ISO 8601 datetime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", + "responses": { + "202": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/create-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "type": "string", + "default": "backup", + "example": "backup" + }, + "backupId": { + "description": "Backup ID to restore from (required for backup type).", + "type": "string", + "example": "<BACKUP_ID>", + "nullable": true + }, + "targetDatabaseId": { + "description": "Existing database ID to restore into. The target must be distinct, ready, and use the same engine and version.", + "type": "string", + "example": "<TARGET_DATABASE_ID>", + "nullable": true + }, + "targetTime": { + "description": "Target time for PITR (required for pitr type) as an [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + }, + "examples": { + "backup": { + "summary": "Restore from a backup", + "value": { + "type": "backup", + "backupId": "<BACKUP_ID>" + } + }, + "pitr": { + "summary": "Restore to a point in time within the PITR retention window", + "value": { + "type": "pitr", + "targetTime": "2026-01-01T00:00:00.000+00:00" + } + } + } + } + } + } + } + }, + "\/postgresql\/{databaseId}\/restorations\/{restorationId}": { + "get": { + "summary": "Get restoration", + "operationId": "postgresqlGetRestoration", + "tags": [ + "postgresql" + ], + "description": "Get details of a specific database restoration including its status, type, and timestamps.", + "responses": { + "200": { + "description": "Restoration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "restorations", + "demo": "postgresql\/get-restoration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "restorationId", + "description": "Restoration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RESTORATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "postgresqlGetStatus", + "tags": [ + "postgresql" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/postgresql\/{databaseId}\/upgrades": { + "post": { + "summary": "Create upgrade", + "operationId": "postgresqlCreateUpgrade", + "tags": [ + "postgresql" + ], + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", + "responses": { + "200": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "postgresql", + "demo": "postgresql\/create-upgrade.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetVersion": { + "description": "Target engine version to upgrade to.", + "type": "string", + "example": "<TARGET_VERSION>" + } + }, + "required": [ + "targetVersion" + ] + } + } + } + } + } + }, + "\/presences": { + "get": { + "summary": "List presences", + "operationId": "presencesList", + "tags": [ + "presences" + ], + "description": "List presence logs. Expired entries are filtered out automatically.\n", + "responses": { + "200": { + "description": "Presences List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presenceList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/presences\/{presenceId}": { + "get": { + "summary": "Get presence", + "operationId": "presencesGet", + "tags": [ + "presences" + ], + "description": "Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", + "tags": [ + "presences" + ], + "description": "Create or update a presence log by its user ID.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/upsert.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "platforms": [ + "server" + ], + "summary": "Upsert presence", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "presenceId", + "userId", + "status", + "permissions", + "expiresAt", + "metadata" + ], + "required": [ + "presenceId", + "userId", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/presence" + } + ], + "description": "Create or update a presence log by its user ID.\n", + "demo": "presences\/upsert.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "status" + ] + } + } + } + } + }, + "patch": { + "summary": "Update presence", + "operationId": "presencesUpdate", + "tags": [ + "presences" + ], + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "responses": { + "200": { + "description": "Presence", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/presence" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "update", + "namespace": "presences", + "platforms": [ + "server" + ], + "summary": "Update presence", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "presenceId", + "userId", + "status", + "expiresAt", + "metadata", + "permissions", + "purge" + ], + "required": [ + "presenceId", + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/presence" + } + ], + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "demo": "presences\/update.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "status": { + "description": "Presence status.", + "type": "string", + "example": "<STATUS>" + }, + "expiresAt": { + "description": "Presence expiry datetime.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "description": "Presence metadata object.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "purge": { + "description": "When true, purge cached responses used by list presences endpoint.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", + "tags": [ + "presences" + ], + "description": "Delete a presence log by its unique ID.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "presences", + "demo": "presences\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "presences.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PRESENCE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project": { + "get": { + "summary": "Get project", + "operationId": "projectGet", + "tags": [ + "project" + ], + "description": "Get a project.", + "responses": { + "200": { + "description": "Project", + "content": { + "": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + }, + "delete": { + "summary": "Delete project", + "operationId": "projectDelete", + "tags": [ + "project" + ], + "description": "Delete a project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/project\/auth-methods\/{methodId}": { + "patch": { + "summary": "Update project auth method status", + "operationId": "projectUpdateAuthMethod", + "tags": [ + "project" + ], + "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-auth-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "methodId", + "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone,passkey", + "required": true, + "schema": { + "type": "string", + "example": "email-password", + "title": "ProjectAuthMethodId", + "oneOf": [ + { + "type": "string", + "enum": [ + "email-password" + ], + "title": "email-password" + }, + { + "type": "string", + "enum": [ + "magic-url" + ], + "title": "magic-url" + }, + { + "type": "string", + "enum": [ + "email-otp" + ], + "title": "email-otp" + }, + { + "type": "string", + "enum": [ + "anonymous" + ], + "title": "anonymous" + }, + { + "type": "string", + "enum": [ + "invites" + ], + "title": "invites" + }, + { + "type": "string", + "enum": [ + "jwt" + ], + "title": "jwt" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "passkey" + ], + "title": "passkey" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Auth method status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/keys": { + "get": { + "summary": "List project keys", + "operationId": "projectListKeys", + "tags": [ + "project" + ], + "description": "Get a list of all API keys from the current project.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "projectCreateEphemeralKey", + "tags": [ + "project" + ], + "description": "Create a new ephemeral API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", + "responses": { + "201": { + "description": "Ephemeral Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/ephemeralKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/create-ephemeral-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "duration": { + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "type": "integer", + "example": 600, + "format": "int32" + } + }, + "required": [ + "scopes", + "duration" + ] + } + } + } + } + } + }, + "\/project\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "projectGetKey", + "tags": [ + "project" + ], + "description": "Get a key by its unique ID. ", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project key", + "operationId": "projectUpdateKey", + "tags": [ + "project" + ], + "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Key name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "scopes": { + "description": "Key scopes list. Maximum of 200 scopes are allowed.", + "type": "array", + "example": [ + "users.read" + ], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + }, + "expire": { + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project key", + "operationId": "projectDeleteKey", + "tags": [ + "project" + ], + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "keys", + "demo": "project\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project\/labels": { + "put": { + "summary": "Update project labels", + "operationId": "projectUpdateLabels", + "tags": [ + "project" + ], + "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-labels.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "example": [ + "production" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/project\/mock-phones": { + "get": { + "summary": "List project mock phones", + "operationId": "projectListMockPhones", + "tags": [ + "project" + ], + "description": "Get a list of all mock phones in the project. This endpoint returns an array of all mock phones and their OTPs.", + "responses": { + "200": { + "description": "Mock Numbers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumberList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/list-mock-phones.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project mock phone", + "operationId": "projectCreateMockPhone", + "tags": [ + "project" + ], + "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", + "responses": { + "201": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/create-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", + "type": "string", + "example": "+12065550100", + "format": "phone" + }, + "otp": { + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "number", + "otp" + ] + } + } + } + } + } + }, + "\/project\/mock-phones\/{number}": { + "get": { + "summary": "Get project mock phone", + "operationId": "projectGetMockPhone", + "tags": [ + "project" + ], + "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", + "responses": { + "200": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/get-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "example": "+12065550100" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project mock phone", + "operationId": "projectUpdateMockPhone", + "tags": [ + "project" + ], + "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", + "responses": { + "200": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/update-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "example": "+12065550100" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "otp": { + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "type": "string", + "example": "<OTP>" + } + }, + "required": [ + "otp" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete project mock phone", + "operationId": "projectDeleteMockPhone", + "tags": [ + "project" + ], + "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mocks", + "demo": "project\/delete-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "example": "+12065550100" + }, + "in": "path" + } + ] + } + }, + "\/project\/oauth2": { + "get": { + "summary": "List project OAuth2 providers", + "operationId": "projectListOAuth2Providers", + "tags": [ + "project" + ], + "description": "Get a list of all OAuth2 providers supported by the server, along with the project's configuration for each. Credential fields are write-only and always returned empty.", + "responses": { + "200": { + "description": "OAuth2 Providers List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2ProviderList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/oauth2-server": { + "put": { + "summary": "Update OAuth2 server", + "operationId": "projectUpdateOAuth2Server", + "tags": [ + "project" + ], + "description": "Update the OAuth2 server (OIDC provider) configuration.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-o-auth-2-server.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Enable or disable the OAuth2 server.", + "type": "boolean", + "example": false + }, + "authorizationUrl": { + "description": "URL to your application with consent screen.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "scopes": { + "description": "List of allowed OAuth2 scopes. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "authorizationDetailsTypes": { + "description": "List of accepted `authorization_details` types. Maximum of 100 types are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "accessTokenDuration": { + "description": "Access token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 8 hours.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "refreshTokenDuration": { + "description": "Refresh token duration in seconds for confidential clients (server-side apps that authenticate with a client secret). Leave empty to use default 1 year.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "publicAccessTokenDuration": { + "description": "Access token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 1 hour.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "publicRefreshTokenDuration": { + "description": "Refresh token duration in seconds for public clients (SPAs, mobile, and native apps that cannot keep a client secret). Leave empty to use default 30 days.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "installationAccessTokenDuration": { + "description": "Access token duration in seconds for app installation access tokens. Leave empty to use default 1 hour.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "confidentialPkce": { + "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", + "type": "boolean", + "example": false, + "nullable": true + }, + "verificationUrl": { + "description": "URL to your application page where users enter the device flow user code. Required to enable the Device Authorization Grant.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "userCodeLength": { + "description": "Number of characters in the device flow user code, excluding the formatting separator. Shorter codes are easier to type but weaker; pair short codes with short expiry. Leave empty to use default 8.", + "type": "integer", + "example": 6, + "format": "int32", + "nullable": true + }, + "userCodeFormat": { + "description": "Character set for device flow user codes: `numeric` (digits only \u2014 best for numeric keypads and TV remotes), `alphabetic` (letters only), or `alphanumeric` (letters and digits \u2014 highest entropy per character). Defaults to `alphanumeric`.", + "type": "string", + "default": "alphanumeric", + "example": "numeric" + }, + "deviceCodeDuration": { + "description": "Lifetime in seconds of device flow device codes and user codes. Device codes are intentionally short-lived. Leave empty to use default 600.", + "type": "integer", + "example": 60, + "format": "int32", + "nullable": true + }, + "defaultScopes": { + "description": "List of OAuth2 scopes used when an authorization request omits the scope parameter. Every default scope must also be allowed by the OAuth2 server. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "installationScopes": { + "description": "List of scopes an application may request when installed on a team. Omitting the parameter clears the list, so no installation scopes can be granted. Maximum of 100 scopes are allowed, each up to 128 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "enabled", + "authorizationUrl" + ] + } + } + } + } + } + }, + "\/project\/oauth2\/amazon": { + "patch": { + "summary": "Update project OAuth2 Amazon", + "operationId": "projectUpdateOAuth2Amazon", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Amazon configuration.", + "responses": { + "200": { + "description": "OAuth2Amazon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-amazon.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/apple": { + "patch": { + "summary": "Update project OAuth2 Apple", + "operationId": "projectUpdateOAuth2Apple", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Apple configuration.", + "responses": { + "200": { + "description": "OAuth2Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Apple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-apple.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "serviceId": { + "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", + "type": "string", + "example": "<SERVICE_ID>", + "nullable": true + }, + "keyId": { + "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", + "type": "string", + "example": "<KEY_ID>", + "nullable": true + }, + "teamId": { + "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", + "type": "string", + "example": "<TEAM_ID>", + "nullable": true + }, + "p8File": { + "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "type": "string", + "example": "<P8_FILE>", + "nullable": true + }, + "nativeClientIds": { + "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple. For example: com.example.app. Together with the Services ID, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "enabled": { + "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", + "type": "boolean", + "example": false, + "nullable": true + }, + "nativeEnabled": { + "description": "Native Sign in with Apple status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a Services ID or at least one native client ID to match tokens against, but no key or team ID: this method verifies a signature rather than redeeming an authorization code.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/appwrite": { + "patch": { + "summary": "Update project OAuth2 Appwrite", + "operationId": "projectUpdateOAuth2Appwrite", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Appwrite configuration.", + "responses": { + "200": { + "description": "OAuth2Appwrite", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Appwrite" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-appwrite.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Appwrite OAuth2 app. For example: 6a42000000000000b5a0", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Appwrite OAuth2 app. For example: b86afd000000000000000000000000000000000000000000000000000ced5f93", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/auth0": { + "patch": { + "summary": "Update project OAuth2 Auth0", + "operationId": "projectUpdateOAuth2Auth0", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Auth0 configuration.", + "responses": { + "200": { + "description": "OAuth2Auth0", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-auth-0.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Auth0 instance. For example: example.us.auth0.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "prompt": { + "description": "Array of Auth0 OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Auth0 default.", + "type": "array", + "items": { + "title": "ProjectOAuth2Auth0Prompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/authentik": { + "patch": { + "summary": "Update project OAuth2 Authentik", + "operationId": "projectUpdateOAuth2Authentik", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Authentik configuration.", + "responses": { + "200": { + "description": "OAuth2Authentik", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-authentik.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Authentik instance. For example: example.authentik.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/autodesk": { + "patch": { + "summary": "Update project OAuth2 Autodesk", + "operationId": "projectUpdateOAuth2Autodesk", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Autodesk configuration.", + "responses": { + "200": { + "description": "OAuth2Autodesk", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-autodesk.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/bitbucket": { + "patch": { + "summary": "Update project OAuth2 Bitbucket", + "operationId": "projectUpdateOAuth2Bitbucket", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Bitbucket configuration.", + "responses": { + "200": { + "description": "OAuth2Bitbucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-bitbucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "secret": { + "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", + "type": "string", + "example": "<SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/bitly": { + "patch": { + "summary": "Update project OAuth2 Bitly", + "operationId": "projectUpdateOAuth2Bitly", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Bitly configuration.", + "responses": { + "200": { + "description": "OAuth2Bitly", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-bitly.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/box": { + "patch": { + "summary": "Update project OAuth2 Box", + "operationId": "projectUpdateOAuth2Box", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Box configuration.", + "responses": { + "200": { + "description": "OAuth2Box", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Box" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-box.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/cloudflare": { + "patch": { + "summary": "Update project OAuth2 Cloudflare", + "operationId": "projectUpdateOAuth2Cloudflare", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Cloudflare configuration.", + "responses": { + "200": { + "description": "OAuth2Cloudflare", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-cloudflare.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Cloudflare OAuth2 app. For example: 4b866000000000000000000000c9e4e2", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Cloudflare OAuth2 app. For example: cfoc_5Q6YRl0000000000000000000000000000000000003d214f", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/dailymotion": { + "patch": { + "summary": "Update project OAuth2 Dailymotion", + "operationId": "projectUpdateOAuth2Dailymotion", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Dailymotion configuration.", + "responses": { + "200": { + "description": "OAuth2Dailymotion", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-dailymotion.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "apiKey": { + "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", + "type": "string", + "example": "<API_KEY>", + "nullable": true + }, + "apiSecret": { + "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", + "type": "string", + "example": "<API_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/discord": { + "patch": { + "summary": "Update project OAuth2 Discord", + "operationId": "projectUpdateOAuth2Discord", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Discord configuration.", + "responses": { + "200": { + "description": "OAuth2Discord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Discord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-discord.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array with at most one Discord OAuth2 prompt value. \"none\" means: skip the authorization screen for users who already authorized the app with the requested scopes. \"consent\" means: ask users who already authorized the app to approve it again. Pass an empty array to use the Discord default.", + "type": "array", + "items": { + "title": "ProjectOAuth2DiscordPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/disqus": { + "patch": { + "summary": "Update project OAuth2 Disqus", + "operationId": "projectUpdateOAuth2Disqus", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Disqus configuration.", + "responses": { + "200": { + "description": "OAuth2Disqus", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-disqus.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "publicKey": { + "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "type": "string", + "example": "<PUBLIC_KEY>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/dropbox": { + "patch": { + "summary": "Update project OAuth2 Dropbox", + "operationId": "projectUpdateOAuth2Dropbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Dropbox configuration.", + "responses": { + "200": { + "description": "OAuth2Dropbox", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-dropbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appKey": { + "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", + "type": "string", + "example": "<APP_KEY>", + "nullable": true + }, + "appSecret": { + "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", + "type": "string", + "example": "<APP_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/etsy": { + "patch": { + "summary": "Update project OAuth2 Etsy", + "operationId": "projectUpdateOAuth2Etsy", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Etsy configuration.", + "responses": { + "200": { + "description": "OAuth2Etsy", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-etsy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyString": { + "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", + "type": "string", + "example": "<KEY_STRING>", + "nullable": true + }, + "sharedSecret": { + "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", + "type": "string", + "example": "<SHARED_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/facebook": { + "patch": { + "summary": "Update project OAuth2 Facebook", + "operationId": "projectUpdateOAuth2Facebook", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Facebook configuration.", + "responses": { + "200": { + "description": "OAuth2Facebook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-facebook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", + "type": "string", + "example": "<APP_ID>", + "nullable": true + }, + "appSecret": { + "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", + "type": "string", + "example": "<APP_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/figma": { + "patch": { + "summary": "Update project OAuth2 Figma", + "operationId": "projectUpdateOAuth2Figma", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Figma configuration.", + "responses": { + "200": { + "description": "OAuth2Figma", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Figma" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-figma.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/fusionauth": { + "patch": { + "summary": "Update project OAuth2 FusionAuth", + "operationId": "projectUpdateOAuth2FusionAuth", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 FusionAuth configuration.", + "responses": { + "200": { + "description": "OAuth2FusionAuth", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-fusion-auth.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/github": { + "patch": { + "summary": "Update project OAuth2 GitHub", + "operationId": "projectUpdateOAuth2GitHub", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 GitHub configuration.", + "responses": { + "200": { + "description": "OAuth2GitHub", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Github" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-git-hub.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of GitHub OAuth2 prompt values. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the GitHub default.", + "type": "array", + "items": { + "title": "ProjectOAuth2GitHubPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/gitlab": { + "patch": { + "summary": "Update project OAuth2 Gitlab", + "operationId": "projectUpdateOAuth2Gitlab", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Gitlab configuration.", + "responses": { + "200": { + "description": "OAuth2Gitlab", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-gitlab.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "type": "string", + "example": "<APPLICATION_ID>", + "nullable": true + }, + "secret": { + "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "type": "string", + "example": "<SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/google": { + "patch": { + "summary": "Update project OAuth2 Google", + "operationId": "projectUpdateOAuth2Google", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Google configuration.", + "responses": { + "200": { + "description": "OAuth2Google", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Google" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-google.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "type": "array", + "items": { + "title": "ProjectOAuth2GooglePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "nativeClientIds": { + "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in (Android and iOS client IDs). Together with the client ID, which is always accepted, these are the only client IDs whose tokens are trusted. Pass an empty array to clear the list.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "enabled": { + "description": "Browser-based OAuth2 sign-in status. Set to true to enable new session creation through the redirect flow. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid. Has no effect on native sign-in, which is controlled by nativeEnabled only.", + "type": "boolean", + "example": false, + "nullable": true + }, + "nativeEnabled": { + "description": "Native Google sign-in status. This is the only switch for creating sessions from ID tokens obtained on device and is independent of enabled. Needs a client ID or at least one native client ID to match tokens against, but no client secret: this method verifies a signature rather than redeeming an authorization code.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/huggingface": { + "patch": { + "summary": "Update project OAuth2 Hugging Face", + "operationId": "projectUpdateOAuth2HuggingFace", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Hugging Face configuration.", + "responses": { + "200": { + "description": "OAuth2HuggingFace", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-hugging-face.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Hugging Face OAuth2 app. For example: 2ab9cff9-d711-40ad-a91e-b08a49c42d24", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Hugging Face OAuth2 app. For example: oauth_app_secret_wcLhRtl000000000000000000000xbNdLt", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/kakao": { + "patch": { + "summary": "Update project OAuth2 Kakao", + "operationId": "projectUpdateOAuth2Kakao", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Kakao configuration.", + "responses": { + "200": { + "description": "OAuth2Kakao", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-kakao.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'REST API key' of Kakao OAuth2 app. For example: 839ff5000000000000000000013206de", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Kakao OAuth2 app. For example: jLNVOK00000000000000000000yJebea. Generate it under Kakao Login > Security and set its status to enabled", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Kakao OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"create\" means: prompt the user to sign up. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Kakao default.", + "type": "array", + "items": { + "title": "ProjectOAuth2KakaoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/keycloak": { + "patch": { + "summary": "Update project OAuth2 Keycloak", + "operationId": "projectUpdateOAuth2Keycloak", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Keycloak configuration.", + "responses": { + "200": { + "description": "OAuth2Keycloak", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-keycloak.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "endpoint": { + "description": "Domain of Keycloak instance. For example: keycloak.example.com", + "type": "string", + "example": "<ENDPOINT>", + "nullable": true + }, + "realmName": { + "description": "Keycloak realm name. For example: appwrite-realm", + "type": "string", + "example": "<REALM_NAME>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/kick": { + "patch": { + "summary": "Update project OAuth2 Kick", + "operationId": "projectUpdateOAuth2Kick", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Kick configuration.", + "responses": { + "200": { + "description": "OAuth2Kick", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Kick" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-kick.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/linkedin": { + "patch": { + "summary": "Update project OAuth2 Linkedin", + "operationId": "projectUpdateOAuth2Linkedin", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Linkedin configuration.", + "responses": { + "200": { + "description": "OAuth2Linkedin", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-linkedin.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "primaryClientSecret": { + "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", + "type": "string", + "example": "<PRIMARY_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/microsoft": { + "patch": { + "summary": "Update project OAuth2 Microsoft", + "operationId": "projectUpdateOAuth2Microsoft", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Microsoft configuration.", + "responses": { + "200": { + "description": "OAuth2Microsoft", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-microsoft.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "applicationId": { + "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", + "type": "string", + "example": "<APPLICATION_ID>", + "nullable": true + }, + "applicationSecret": { + "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "type": "string", + "example": "<APPLICATION_SECRET>", + "nullable": true + }, + "tenant": { + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", + "type": "string", + "example": "<TENANT>", + "nullable": true + }, + "prompt": { + "description": "Array of Microsoft OAuth2 prompt values. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account. Pass an empty array to use the Microsoft default.", + "type": "array", + "items": { + "title": "ProjectOAuth2MicrosoftPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/notion": { + "patch": { + "summary": "Update project OAuth2 Notion", + "operationId": "projectUpdateOAuth2Notion", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Notion configuration.", + "responses": { + "200": { + "description": "OAuth2Notion", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Notion" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-notion.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauthClientId": { + "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", + "type": "string", + "example": "<OAUTH_CLIENT_ID>", + "nullable": true + }, + "oauthClientSecret": { + "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", + "type": "string", + "example": "<OAUTH_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/oidc": { + "patch": { + "summary": "Update project OAuth2 Oidc", + "operationId": "projectUpdateOAuth2Oidc", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Oidc configuration.", + "responses": { + "200": { + "description": "OAuth2Oidc", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-oidc.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "wellKnownURL": { + "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "authorizationURL": { + "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "tokenURL": { + "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "userInfoURL": { + "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "prompt": { + "description": "Array of OpenID Connect prompt values controlling the authentication and consent screens. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "type": "array", + "items": { + "title": "ProjectOAuth2OidcPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "nullable": true + }, + "maxAge": { + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds, otherwise they are prompted to re-authenticate.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/okta": { + "patch": { + "summary": "Update project OAuth2 Okta", + "operationId": "projectUpdateOAuth2Okta", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Okta configuration.", + "responses": { + "200": { + "description": "OAuth2Okta", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Okta" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-okta.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "domain": { + "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", + "type": "string", + "example": "example.com", + "nullable": true + }, + "authorizationServerId": { + "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", + "type": "string", + "example": "<AUTHORIZATION_SERVER_ID>", + "nullable": true + }, + "prompt": { + "description": "Array of Okta OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Okta default.", + "type": "array", + "items": { + "title": "ProjectOAuth2OktaPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/paypal": { + "patch": { + "summary": "Update project OAuth2 Paypal", + "operationId": "projectUpdateOAuth2Paypal", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Paypal configuration.", + "responses": { + "200": { + "description": "OAuth2Paypal", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-paypal.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/paypalSandbox": { + "patch": { + "summary": "Update project OAuth2 PaypalSandbox", + "operationId": "projectUpdateOAuth2PaypalSandbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 PaypalSandbox configuration.", + "responses": { + "200": { + "description": "OAuth2Paypal", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-paypal-sandbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/podio": { + "patch": { + "summary": "Update project OAuth2 Podio", + "operationId": "projectUpdateOAuth2Podio", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Podio configuration.", + "responses": { + "200": { + "description": "OAuth2Podio", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Podio" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-podio.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/resend": { + "patch": { + "summary": "Update project OAuth2 Resend", + "operationId": "projectUpdateOAuth2Resend", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Resend configuration.", + "responses": { + "200": { + "description": "OAuth2Resend", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Resend" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-resend.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Resend OAuth2 app. For example: f47ac10b-58cc-4372-a567-0e02b2c3d479", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Resend OAuth2 app. For example: 9c1e4b00000000000000000000000000000000000000000000000000a72d5f4", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/salesforce": { + "patch": { + "summary": "Update project OAuth2 Salesforce", + "operationId": "projectUpdateOAuth2Salesforce", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Salesforce configuration.", + "responses": { + "200": { + "description": "OAuth2Salesforce", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-salesforce.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "customerKey": { + "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "type": "string", + "example": "<CUSTOMER_KEY>", + "nullable": true + }, + "customerSecret": { + "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", + "type": "string", + "example": "<CUSTOMER_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Salesforce OAuth2 prompt values. \"login\" means: prompt the user to re-authenticate. \"consent\" means: prompt the user for consent. Pass an empty array to use the Salesforce default.", + "type": "array", + "items": { + "title": "ProjectOAuth2SalesforcePrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/slack": { + "patch": { + "summary": "Update project OAuth2 Slack", + "operationId": "projectUpdateOAuth2Slack", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Slack configuration.", + "responses": { + "200": { + "description": "OAuth2Slack", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Slack" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-slack.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/spotify": { + "patch": { + "summary": "Update project OAuth2 Spotify", + "operationId": "projectUpdateOAuth2Spotify", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Spotify configuration.", + "responses": { + "200": { + "description": "OAuth2Spotify", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-spotify.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/stripe": { + "patch": { + "summary": "Update project OAuth2 Stripe", + "operationId": "projectUpdateOAuth2Stripe", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Stripe configuration.", + "responses": { + "200": { + "description": "OAuth2Stripe", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-stripe.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "apiSecretKey": { + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "type": "string", + "example": "<API_SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tiktok": { + "patch": { + "summary": "Update project OAuth2 TikTok", + "operationId": "projectUpdateOAuth2TikTok", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 TikTok configuration.", + "responses": { + "200": { + "description": "OAuth2TikTok", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tik-tok.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client key' of TikTok OAuth2 app. For example: awz000000000tyw0", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client secret' of TikTok OAuth2 app. For example: 6wXewM00000000000000000000yXnite", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshift": { + "patch": { + "summary": "Update project OAuth2 Tradeshift", + "operationId": "projectUpdateOAuth2Tradeshift", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tradeshift.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "type": "string", + "example": "<OAUTH2_CLIENT_ID>", + "nullable": true + }, + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "type": "string", + "example": "<OAUTH2_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/tradeshiftBox": { + "patch": { + "summary": "Update project OAuth2 Tradeshift Sandbox", + "operationId": "projectUpdateOAuth2TradeshiftSandbox", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "type": "string", + "example": "<OAUTH2_CLIENT_ID>", + "nullable": true + }, + "oauth2ClientSecret": { + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "type": "string", + "example": "<OAUTH2_CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/twitch": { + "patch": { + "summary": "Update project OAuth2 Twitch", + "operationId": "projectUpdateOAuth2Twitch", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Twitch configuration.", + "responses": { + "200": { + "description": "OAuth2Twitch", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-twitch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/webflow": { + "patch": { + "summary": "Update project OAuth2 Webflow", + "operationId": "projectUpdateOAuth2Webflow", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Webflow configuration.", + "responses": { + "200": { + "description": "OAuth2Webflow", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-webflow.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Webflow OAuth2 app. For example: 8bb20000000000000000000000000000000000000000000000000000000040dd", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Webflow OAuth2 app. For example: 59bf00000000000000000000000000000000000000000000000000000000fe59", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/wordpress": { + "patch": { + "summary": "Update project OAuth2 WordPress", + "operationId": "projectUpdateOAuth2WordPress", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 WordPress configuration.", + "responses": { + "200": { + "description": "OAuth2WordPress", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-word-press.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/x": { + "patch": { + "summary": "Update project OAuth2 X", + "operationId": "projectUpdateOAuth2X", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 X configuration.", + "responses": { + "200": { + "description": "OAuth2X", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2X" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2x.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "customerKey": { + "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", + "type": "string", + "example": "<CUSTOMER_KEY>", + "nullable": true + }, + "secretKey": { + "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", + "type": "string", + "example": "<SECRET_KEY>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/yahoo": { + "patch": { + "summary": "Update project OAuth2 Yahoo", + "operationId": "projectUpdateOAuth2Yahoo", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Yahoo configuration.", + "responses": { + "200": { + "description": "OAuth2Yahoo", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-yahoo.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/yandex": { + "patch": { + "summary": "Update project OAuth2 Yandex", + "operationId": "projectUpdateOAuth2Yandex", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Yandex configuration.", + "responses": { + "200": { + "description": "OAuth2Yandex", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-yandex.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/zoho": { + "patch": { + "summary": "Update project OAuth2 Zoho", + "operationId": "projectUpdateOAuth2Zoho", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Zoho configuration.", + "responses": { + "200": { + "description": "OAuth2Zoho", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-zoho.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "prompt": { + "description": "Array of Zoho OAuth2 prompt values. \"consent\" means: prompt the user for consent. Pass an empty array to use the Zoho default.", + "type": "array", + "items": { + "title": "ProjectOAuth2ZohoPrompt", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/zoom": { + "patch": { + "summary": "Update project OAuth2 Zoom", + "operationId": "projectUpdateOAuth2Zoom", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Zoom configuration.", + "responses": { + "200": { + "description": "OAuth2Zoom", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/update-o-auth-2-zoom.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "type": "string", + "example": "<CLIENT_ID>", + "nullable": true + }, + "clientSecret": { + "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "type": "string", + "example": "<CLIENT_SECRET>", + "nullable": true + }, + "enabled": { + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/{providerId}": { + "get": { + "summary": "Get project OAuth2 provider", + "operationId": "projectGetOAuth2Provider", + "tags": [ + "project" + ], + "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", + "responses": { + "200": { + "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Webflow, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2HuggingFace, or OAuth2Resend, or OAuth2Cloudflare, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft, or OAuth2TikTok, or OAuth2Kakao", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/oAuth2Github" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Discord" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Figma" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Box" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Google" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + }, + { + "$ref": "#\/components\/schemas\/oAuth2X" + }, + { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Slack" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Podio" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Notion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + }, + { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Resend" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + }, + { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Apple" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Okta" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kick" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + }, + { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/components\/schemas\/oAuth2Github", + "discord": "#\/components\/schemas\/oAuth2Discord", + "figma": "#\/components\/schemas\/oAuth2Figma", + "dropbox": "#\/components\/schemas\/oAuth2Dropbox", + "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", + "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", + "bitly": "#\/components\/schemas\/oAuth2Bitly", + "box": "#\/components\/schemas\/oAuth2Box", + "autodesk": "#\/components\/schemas\/oAuth2Autodesk", + "google": "#\/components\/schemas\/oAuth2Google", + "zoom": "#\/components\/schemas\/oAuth2Zoom", + "zoho": "#\/components\/schemas\/oAuth2Zoho", + "yandex": "#\/components\/schemas\/oAuth2Yandex", + "x": "#\/components\/schemas\/oAuth2X", + "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "webflow": "#\/components\/schemas\/oAuth2Webflow", + "twitch": "#\/components\/schemas\/oAuth2Twitch", + "stripe": "#\/components\/schemas\/oAuth2Stripe", + "spotify": "#\/components\/schemas\/oAuth2Spotify", + "slack": "#\/components\/schemas\/oAuth2Slack", + "podio": "#\/components\/schemas\/oAuth2Podio", + "notion": "#\/components\/schemas\/oAuth2Notion", + "salesforce": "#\/components\/schemas\/oAuth2Salesforce", + "yahoo": "#\/components\/schemas\/oAuth2Yahoo", + "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", + "resend": "#\/components\/schemas\/oAuth2Resend", + "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", + "linkedin": "#\/components\/schemas\/oAuth2Linkedin", + "disqus": "#\/components\/schemas\/oAuth2Disqus", + "amazon": "#\/components\/schemas\/oAuth2Amazon", + "etsy": "#\/components\/schemas\/oAuth2Etsy", + "facebook": "#\/components\/schemas\/oAuth2Facebook", + "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", + "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", + "paypal": "#\/components\/schemas\/oAuth2Paypal", + "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", + "gitlab": "#\/components\/schemas\/oAuth2Gitlab", + "authentik": "#\/components\/schemas\/oAuth2Authentik", + "auth0": "#\/components\/schemas\/oAuth2Auth0", + "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", + "keycloak": "#\/components\/schemas\/oAuth2Keycloak", + "oidc": "#\/components\/schemas\/oAuth2Oidc", + "apple": "#\/components\/schemas\/oAuth2Apple", + "okta": "#\/components\/schemas\/oAuth2Okta", + "kick": "#\/components\/schemas\/oAuth2Kick", + "microsoft": "#\/components\/schemas\/oAuth2Microsoft", + "tiktok": "#\/components\/schemas\/oAuth2TikTok", + "kakao": "#\/components\/schemas\/oAuth2Kakao" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "oauth2", + "demo": "project\/get-o-auth-2-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.oauth2.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "OAuth2 provider key. For example: github, google, apple.", + "required": true, + "schema": { + "type": "string", + "example": "amazon", + "title": "ProjectOAuthProviderId", + "oneOf": [ + { + "type": "string", + "enum": [ + "amazon" + ], + "title": "amazon" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "appwrite" + ], + "title": "appwrite" + }, + { + "type": "string", + "enum": [ + "auth0" + ], + "title": "auth0" + }, + { + "type": "string", + "enum": [ + "authentik" + ], + "title": "authentik" + }, + { + "type": "string", + "enum": [ + "autodesk" + ], + "title": "autodesk" + }, + { + "type": "string", + "enum": [ + "bitbucket" + ], + "title": "bitbucket" + }, + { + "type": "string", + "enum": [ + "bitly" + ], + "title": "bitly" + }, + { + "type": "string", + "enum": [ + "box" + ], + "title": "box" + }, + { + "type": "string", + "enum": [ + "cloudflare" + ], + "title": "cloudflare" + }, + { + "type": "string", + "enum": [ + "dailymotion" + ], + "title": "dailymotion" + }, + { + "type": "string", + "enum": [ + "discord" + ], + "title": "discord" + }, + { + "type": "string", + "enum": [ + "disqus" + ], + "title": "disqus" + }, + { + "type": "string", + "enum": [ + "dropbox" + ], + "title": "dropbox" + }, + { + "type": "string", + "enum": [ + "etsy" + ], + "title": "etsy" + }, + { + "type": "string", + "enum": [ + "facebook" + ], + "title": "facebook" + }, + { + "type": "string", + "enum": [ + "figma" + ], + "title": "figma" + }, + { + "type": "string", + "enum": [ + "fusionauth" + ], + "title": "fusionauth" + }, + { + "type": "string", + "enum": [ + "github" + ], + "title": "github" + }, + { + "type": "string", + "enum": [ + "gitlab" + ], + "title": "gitlab" + }, + { + "type": "string", + "enum": [ + "google" + ], + "title": "google" + }, + { + "type": "string", + "enum": [ + "huggingface" + ], + "title": "huggingface" + }, + { + "type": "string", + "enum": [ + "kakao" + ], + "title": "kakao" + }, + { + "type": "string", + "enum": [ + "keycloak" + ], + "title": "keycloak" + }, + { + "type": "string", + "enum": [ + "kick" + ], + "title": "kick" + }, + { + "type": "string", + "enum": [ + "linkedin" + ], + "title": "linkedin" + }, + { + "type": "string", + "enum": [ + "microsoft" + ], + "title": "microsoft" + }, + { + "type": "string", + "enum": [ + "notion" + ], + "title": "notion" + }, + { + "type": "string", + "enum": [ + "oidc" + ], + "title": "oidc" + }, + { + "type": "string", + "enum": [ + "okta" + ], + "title": "okta" + }, + { + "type": "string", + "enum": [ + "paypal" + ], + "title": "paypal" + }, + { + "type": "string", + "enum": [ + "paypalSandbox" + ], + "title": "paypalSandbox" + }, + { + "type": "string", + "enum": [ + "podio" + ], + "title": "podio" + }, + { + "type": "string", + "enum": [ + "resend" + ], + "title": "resend" + }, + { + "type": "string", + "enum": [ + "salesforce" + ], + "title": "salesforce" + }, + { + "type": "string", + "enum": [ + "slack" + ], + "title": "slack" + }, + { + "type": "string", + "enum": [ + "spotify" + ], + "title": "spotify" + }, + { + "type": "string", + "enum": [ + "stripe" + ], + "title": "stripe" + }, + { + "type": "string", + "enum": [ + "tiktok" + ], + "title": "tiktok" + }, + { + "type": "string", + "enum": [ + "tradeshift" + ], + "title": "tradeshift" + }, + { + "type": "string", + "enum": [ + "tradeshiftBox" + ], + "title": "tradeshiftBox" + }, + { + "type": "string", + "enum": [ + "twitch" + ], + "title": "twitch" + }, + { + "type": "string", + "enum": [ + "webflow" + ], + "title": "webflow" + }, + { + "type": "string", + "enum": [ + "wordpress" + ], + "title": "wordpress" + }, + { + "type": "string", + "enum": [ + "x" + ], + "title": "x" + }, + { + "type": "string", + "enum": [ + "yahoo" + ], + "title": "yahoo" + }, + { + "type": "string", + "enum": [ + "yammer" + ], + "title": "yammer" + }, + { + "type": "string", + "enum": [ + "yandex" + ], + "title": "yandex" + }, + { + "type": "string", + "enum": [ + "zoho" + ], + "title": "zoho" + }, + { + "type": "string", + "enum": [ + "zoom" + ], + "title": "zoom" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/project\/platforms": { + "get": { + "summary": "List project platforms", + "operationId": "projectListPlatforms", + "tags": [ + "project" + ], + "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", + "responses": { + "200": { + "description": "Platforms List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/list-platforms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/platforms\/android": { + "post": { + "summary": "Create project Android platform", + "operationId": "projectCreateAndroidPlatform", + "tags": [ + "project" + ], + "description": "Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Android", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformAndroid" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-android-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "applicationId": { + "description": "Android application ID. Max length: 256 chars.", + "type": "string", + "example": "<APPLICATION_ID>" + } + }, + "required": [ + "platformId", + "name", + "applicationId" + ] + } + } + } + } + } + }, + "\/project\/platforms\/android\/{platformId}": { + "put": { + "summary": "Update project Android platform", + "operationId": "projectUpdateAndroidPlatform", + "tags": [ + "project" + ], + "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", + "responses": { + "200": { + "description": "Platform Android", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformAndroid" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-android-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "applicationId": { + "description": "Android application ID. Max length: 256 chars.", + "type": "string", + "example": "<APPLICATION_ID>" + } + }, + "required": [ + "name", + "applicationId" + ] + } + } + } + } + } + }, + "\/project\/platforms\/apple": { + "post": { + "summary": "Create project Apple platform", + "operationId": "projectCreateApplePlatform", + "tags": [ + "project" + ], + "description": "Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-apple-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "bundleIdentifier": { + "description": "Apple bundle identifier. Max length: 256 chars.", + "type": "string", + "example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "platformId", + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/apple\/{platformId}": { + "put": { + "summary": "Update project Apple platform", + "operationId": "projectUpdateApplePlatform", + "tags": [ + "project" + ], + "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", + "responses": { + "200": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-apple-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "bundleIdentifier": { + "description": "Apple bundle identifier. Max length: 256 chars.", + "type": "string", + "example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux": { + "post": { + "summary": "Create project Linux platform", + "operationId": "projectCreateLinuxPlatform", + "tags": [ + "project" + ], + "description": "Create a new Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Linux", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformLinux" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-linux-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageName": { + "description": "Linux package name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux\/{platformId}": { + "put": { + "summary": "Update project Linux platform", + "operationId": "projectUpdateLinuxPlatform", + "tags": [ + "project" + ], + "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", + "responses": { + "200": { + "description": "Platform Linux", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformLinux" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-linux-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageName": { + "description": "Linux package name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_NAME>" + } + }, + "required": [ + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web": { + "post": { + "summary": "Create project web platform", + "operationId": "projectCreateWebPlatform", + "tags": [ + "project" + ], + "description": "Create a new web platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-web-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "hostname": { + "description": "Platform web hostname. Max length: 256 chars.", + "type": "string", + "example": "app.example.com" + } + }, + "required": [ + "platformId", + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web\/{platformId}": { + "put": { + "summary": "Update project web platform", + "operationId": "projectUpdateWebPlatform", + "tags": [ + "project" + ], + "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", + "responses": { + "200": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-web-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "hostname": { + "description": "Platform web hostname. Max length: 256 chars.", + "type": "string", + "example": "app.example.com" + } + }, + "required": [ + "name", + "hostname" + ] + } + } + } + } + } + }, + "\/project\/platforms\/windows": { + "post": { + "summary": "Create project Windows platform", + "operationId": "projectCreateWindowsPlatform", + "tags": [ + "project" + ], + "description": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform Windows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/create-windows-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<PLATFORM_ID>" + }, + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageIdentifierName": { + "description": "Windows package identifier name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/windows\/{platformId}": { + "put": { + "summary": "Update project Windows platform", + "operationId": "projectUpdateWindowsPlatform", + "tags": [ + "project" + ], + "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", + "responses": { + "200": { + "description": "Platform Windows", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWindows" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/update-windows-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Platform name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "packageIdentifierName": { + "description": "Windows package identifier name. Max length: 256 chars.", + "type": "string", + "example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "name", + "packageIdentifierName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/{platformId}": { + "get": { + "summary": "Get project platform", + "operationId": "projectGetPlatform", + "tags": [ + "project" + ], + "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", + "responses": { + "200": { + "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/platformWeb" + }, + { + "$ref": "#\/components\/schemas\/platformApple" + }, + { + "$ref": "#\/components\/schemas\/platformAndroid" + }, + { + "$ref": "#\/components\/schemas\/platformWindows" + }, + { + "$ref": "#\/components\/schemas\/platformLinux" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "web": "#\/components\/schemas\/platformWeb", + "apple": "#\/components\/schemas\/platformApple", + "android": "#\/components\/schemas\/platformAndroid", + "windows": "#\/components\/schemas\/platformWindows", + "linux": "#\/components\/schemas\/platformLinux" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/get-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete project platform", + "operationId": "projectDeletePlatform", + "tags": [ + "project" + ], + "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "platforms", + "demo": "project\/delete-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "platformId", + "description": "Platform ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project\/policies": { + "get": { + "summary": "List project policies", + "operationId": "projectListPolicies", + "tags": [ + "project" + ], + "description": "Get a list of all project policies and their current configuration.", + "responses": { + "200": { + "description": "Policies List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/list-policies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "project.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/project\/policies\/deny-aliased-email": { + "patch": { + "summary": "Update deny aliased email policy", + "operationId": "projectUpdateDenyAliasedEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-aliased-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block aliased emails during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-corporate-email": { + "patch": { + "summary": "Update deny non-corporate email policy", + "operationId": "projectUpdateDenyCorporateEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if only corporate email addresses (non-free and non-disposable domains) are allowed during new user sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-corporate-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to restrict sign-ups and email updates to corporate email addresses only.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-disposable-email": { + "patch": { + "summary": "Update deny disposable email policy", + "operationId": "projectUpdateDenyDisposableEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-disposable-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/deny-free-email": { + "patch": { + "summary": "Update deny free email policy", + "operationId": "projectUpdateDenyFreeEmailPolicy", + "tags": [ + "project" + ], + "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-deny-free-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Set whether or not to block free email addresses during signup and email updates.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/membership-privacy": { + "patch": { + "summary": "Update membership privacy policy", + "operationId": "projectUpdateMembershipPrivacyPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if team members can see other members information. When enabled, all team members can see ID, name, email, phone number, and MFA status of other members..", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-membership-privacy-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userEmail": { + "description": "Set to true if you want make user email visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userPhone": { + "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userName": { + "description": "Set to true if you want make user name visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userMFA": { + "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + }, + "userAccessedAt": { + "description": "Set to true if you want make user last access time visible to all team members, or false to hide it.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/mfa-factors": { + "patch": { + "summary": "Update MFA factors policy", + "operationId": "projectUpdateMFAFactorsPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control which factors users can use to complete an MFA challenge. Disabled factors cannot be used to create a challenge and are reported as unavailable when listing factors. The custom factor is disabled by default; enable it to deliver challenge codes through your own channel. Recovery codes always remain available as a fallback.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-mfa-factors-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "totp": { + "description": "Set to true to allow TOTP to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "email": { + "description": "Set to true to allow email to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "phone": { + "description": "Set to true to allow phone (SMS) to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + }, + "custom": { + "description": "Set to true to allow the custom factor to complete an MFA challenge, or false to disable it.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/passkey": { + "patch": { + "summary": "Update passkey policy", + "operationId": "projectUpdatePasskeyPolicy", + "tags": [ + "project" + ], + "description": "Configure the relying party passkeys are bound to. The relying party ID is the domain of your application, and origins are the exact web origins allowed to register and sign in with passkeys. Passkeys stay unavailable until both are set and the passkey auth method is enabled. The relying party ID cannot change while users have passkeys, and any change invalidates ceremonies in progress.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-passkey-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": { + "rpId": { + "description": "Relying party ID: the domain of your application, such as `example.com`. Use `localhost` for local development.", + "type": "string", + "example": "<RP_ID>" + }, + "origins": { + "description": "Web origins allowed to use passkeys, such as `https:\/\/example.com` or `https:\/\/app.example.com`. Each must be HTTPS on the relying party ID or one of its subdomains, without a path. HTTP is only allowed for `localhost`. Maximum of 10 origins.", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "\/project\/policies\/password-dictionary": { + "patch": { + "summary": "Update password dictionary policy", + "operationId": "projectUpdatePasswordDictionaryPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if new passwords are checked against most common passwords dictionary. When enabled, and user changes their password, password must not be contained in the dictionary.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-dictionary-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-history": { + "patch": { + "summary": "Update password history policy", + "operationId": "projectUpdatePasswordHistoryPolicy", + "tags": [ + "project" + ], + "description": "Updates one of password strength policies. Based on total length configured, previous password hashes are stored, and users cannot choose a new password that is already stored in the passwird history list, when updating an user password, or setting new one through password recovery.\n\nKeep in mind, while password history policy is disabled, the history is not being stored. Enabling the policy will not have any history on existing users, and it will only start to collect and enforce the policy on password changes since the policy is enabled.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-history-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the password history length per user. Value can be between 1 and 20, or null to disable the limit.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-personal-data": { + "patch": { + "summary": "Update password personal data policy", + "operationId": "projectUpdatePasswordPersonalDataPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if password strength is checked against personal data. When enabled, and user sets or changes their password, the password must not contain user ID, name, email or phone number.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-personal-data-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/password-pwned": { + "patch": { + "summary": "Update password pwned policy", + "operationId": "projectUpdatePasswordPwnedPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if passwords are checked against the Have I Been Pwned breach database. When enabled, every password a user signs up, signs in or resets with is checked and the result is recorded on the user as `passwordPwned`. On its own the policy only records. Enable `users` to reject a breached password when a user signs up or sets a new password, and `sessions` to refuse a sign-in with a breached password until it is reset. Only the first five characters of the password hash are ever shared with the service. Options left out keep their current value.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-pwned-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle password pwned policy. Set to true to check passwords against known data breaches and record the result on the user, or false to never check. Default is true. On its own this only records; use `users` and `sessions` to block. When changing this policy, existing passwords remain valid.", + "type": "boolean", + "example": false + }, + "sessions": { + "description": "Whether a sign-in with a breached password is refused until the password is reset. Default is false, which allows the sign-in and only records the result.", + "type": "boolean", + "example": false + }, + "users": { + "description": "Whether a breached password is rejected when a user signs up or sets a new password. Default is false, which allows the password and only records the result.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/password-strength": { + "patch": { + "summary": "Update password strength policy", + "operationId": "projectUpdatePasswordStrengthPolicy", + "tags": [ + "project" + ], + "description": "Update the password strength requirements for users in the project.", + "responses": { + "200": { + "description": "Policy Password Strength", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-password-strength-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "min": { + "description": "Minimum password length. Value must be between 8 and 256. Default is 8.", + "type": "integer", + "example": 8, + "format": "int32" + }, + "uppercase": { + "description": "Whether passwords must include at least one uppercase letter.", + "type": "boolean", + "example": false + }, + "lowercase": { + "description": "Whether passwords must include at least one lowercase letter.", + "type": "boolean", + "example": false + }, + "number": { + "description": "Whether passwords must include at least one number.", + "type": "boolean", + "example": false + }, + "symbols": { + "description": "Whether passwords must include at least one symbol.", + "type": "boolean", + "example": false + } + } + } + } + } + } + } + }, + "\/project\/policies\/session-alert": { + "patch": { + "summary": "Update session alert policy", + "operationId": "projectUpdateSessionAlertPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if email alert is sent upon session creation. When enabled, and user signs into their account, they will be sent an email notification. There is an exception, the first session after a new sign up does not trigger an alert, even if the policy is enabled.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-alert-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-duration": { + "patch": { + "summary": "Update session duration policy", + "operationId": "projectUpdateSessionDurationPolicy", + "tags": [ + "project" + ], + "description": "Update maximum duration how long sessions created within a project should stay active for.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-duration-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "description": "Maximum session length in seconds. Minium allowed value is 60 seconds, and maximum is 1 year, which is 31536000 seconds.", + "type": "integer", + "example": 60, + "format": "int32" + } + }, + "required": [ + "duration" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-invalidation": { + "patch": { + "summary": "Update session invalidation policy", + "operationId": "projectUpdateSessionInvalidationPolicy", + "tags": [ + "project" + ], + "description": "Updating this policy allows you to control if existing sessions should be invalidated when a password of a user is changed. When enabled, and user changes their password, they will be logged out of all their devices.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-invalidation-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-limit": { + "patch": { + "summary": "Update session limit policy", + "operationId": "projectUpdateSessionLimitPolicy", + "tags": [ + "project" + ], + "description": "Update the maximum number of sessions allowed per user. When the limit is hit, the oldest session will be deleted to make room for new one.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-session-limit-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 100.", + "type": "integer", + "example": 1, + "format": "int32" + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/user-limit": { + "patch": { + "summary": "Update user limit policy", + "operationId": "projectUpdateUserLimitPolicy", + "tags": [ + "project" + ], + "description": "Update the maximum number of users in the project. When the limit is hit or amount of existing users already exceeded the limit, all users remain active, but new user sign up will be prohibited.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/update-user-limit-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "description": "Set the maximum number of users allowed in the project. Value can be between 0 and 10000. Use 0 or null to disable the limit.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/{policyId}": { + "get": { + "summary": "Get project policy", + "operationId": "projectGetPolicy", + "tags": [ + "project" + ], + "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", + "responses": { + "200": { + "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Strength, or Policy Password Personal Data, or Policy Password Pwned, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy, or Policy MFA Factors, or Policy Deny Aliased Email, or Policy Deny Disposable Email, or Policy Deny Free Email, or Policy Deny Corporate Email, or Policy Passkey", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$ref": "#\/components\/schemas\/policyMfaFactors" + }, + { + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" + }, + { + "$ref": "#\/components\/schemas\/policyPasskey" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "password-pwned": "#\/components\/schemas\/policyPasswordPwned", + "session-alert": "#\/components\/schemas\/policySessionAlert", + "session-duration": "#\/components\/schemas\/policySessionDuration", + "session-invalidation": "#\/components\/schemas\/policySessionInvalidation", + "session-limit": "#\/components\/schemas\/policySessionLimit", + "user-limit": "#\/components\/schemas\/policyUserLimit", + "membership-privacy": "#\/components\/schemas\/policyMembershipPrivacy", + "mfa-factors": "#\/components\/schemas\/policyMfaFactors", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail", + "passkey": "#\/components\/schemas\/policyPasskey" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "policies", + "demo": "project\/get-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.read", + "project.policies.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "policyId", + "description": "Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, password-pwned, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email, passkey.", + "required": true, + "schema": { + "type": "string", + "example": "password-dictionary", + "title": "ProjectPolicyId", + "oneOf": [ + { + "type": "string", + "enum": [ + "password-dictionary" + ], + "title": "password-dictionary" + }, + { + "type": "string", + "enum": [ + "password-history" + ], + "title": "password-history" + }, + { + "type": "string", + "enum": [ + "password-strength" + ], + "title": "password-strength" + }, + { + "type": "string", + "enum": [ + "password-personal-data" + ], + "title": "password-personal-data" + }, + { + "type": "string", + "enum": [ + "password-pwned" + ], + "title": "password-pwned" + }, + { + "type": "string", + "enum": [ + "session-alert" + ], + "title": "session-alert" + }, + { + "type": "string", + "enum": [ + "session-duration" + ], + "title": "session-duration" + }, + { + "type": "string", + "enum": [ + "session-invalidation" + ], + "title": "session-invalidation" + }, + { + "type": "string", + "enum": [ + "session-limit" + ], + "title": "session-limit" + }, + { + "type": "string", + "enum": [ + "user-limit" + ], + "title": "user-limit" + }, + { + "type": "string", + "enum": [ + "membership-privacy" + ], + "title": "membership-privacy" + }, + { + "type": "string", + "enum": [ + "mfa-factors" + ], + "title": "mfa-factors" + }, + { + "type": "string", + "enum": [ + "deny-aliased-email" + ], + "title": "deny-aliased-email" + }, + { + "type": "string", + "enum": [ + "deny-disposable-email" + ], + "title": "deny-disposable-email" + }, + { + "type": "string", + "enum": [ + "deny-free-email" + ], + "title": "deny-free-email" + }, + { + "type": "string", + "enum": [ + "deny-corporate-email" + ], + "title": "deny-corporate-email" + }, + { + "type": "string", + "enum": [ + "passkey" + ], + "title": "passkey" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/project\/protocols\/{protocolId}": { + "patch": { + "summary": "Update project protocol", + "operationId": "projectUpdateProtocol", + "tags": [ + "project" + ], + "description": "Update properties of a specific protocol. Use this endpoint to enable or disable a protocol in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-protocol.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "protocolId", + "description": "Protocol name. Can be one of: rest, graphql, websocket", + "required": true, + "schema": { + "type": "string", + "example": "rest", + "title": "ProjectProtocolId", + "oneOf": [ + { + "type": "string", + "enum": [ + "rest" + ], + "title": "rest" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "websocket" + ], + "title": "websocket" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Protocol status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/services\/{serviceId}": { + "patch": { + "summary": "Update project service", + "operationId": "projectUpdateService", + "tags": [ + "project" + ], + "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "project\/update-service.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "serviceId", + "description": "Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging, advisor, oauth2", + "required": true, + "schema": { + "type": "string", + "example": "account", + "title": "ProjectServiceId", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "avatars" + ], + "title": "avatars" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "locale" + ], + "title": "locale" + }, + { + "type": "string", + "enum": [ + "health" + ], + "title": "health" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "vcs" + ], + "title": "vcs" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "proxy" + ], + "title": "proxy" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "advisor" + ], + "title": "advisor" + }, + { + "type": "string", + "enum": [ + "oauth2" + ], + "title": "oauth2" + } + ] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "description": "Service status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/smtp": { + "patch": { + "summary": "Update project SMTP configuration", + "operationId": "projectUpdateSMTP", + "tags": [ + "project" + ], + "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "smtp", + "demo": "project\/update-smtp.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "host": { + "description": "SMTP server hostname (domain)", + "type": "string", + "example": "example.com", + "nullable": true + }, + "port": { + "description": "SMTP server port", + "type": "integer", + "example": 587, + "format": "int32", + "nullable": true + }, + "username": { + "description": "SMTP server username. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<USERNAME>", + "nullable": true + }, + "password": { + "description": "SMTP server password. Pass an empty string to clear a previously set value. This property is stored securely and cannot be read in future (write-only).", + "type": "string", + "example": "password", + "format": "password", + "nullable": true + }, + "senderEmail": { + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "senderName": { + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<SENDER_NAME>", + "nullable": true + }, + "replyToEmail": { + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + }, + "secure": { + "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", + "type": "string", + "example": "tls", + "title": "ProjectSMTPSecure", + "oneOf": [ + { + "type": "string", + "enum": [ + "tls" + ], + "title": "tls" + }, + { + "type": "string", + "enum": [ + "ssl" + ], + "title": "ssl" + } + ], + "nullable": true + }, + "enabled": { + "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + } + }, + "\/project\/smtp\/tests": { + "post": { + "summary": "Create project SMTP test", + "operationId": "projectCreateSMTPTest", + "tags": [ + "project" + ], + "description": "Send a test email to verify SMTP configuration. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "smtp", + "demo": "project\/create-smtp-test.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emails": { + "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", + "type": "array", + "example": [ + "recipient@example.com" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "emails" + ] + } + } + } + } + } + }, + "\/project\/templates\/email": { + "get": { + "summary": "List project email templates", + "operationId": "projectListEmailTemplates", + "tags": [ + "project" + ], + "description": "Get a list of all custom email templates configured for the project. This endpoint returns an array of all configured email templates and their locales.", + "responses": { + "200": { + "description": "Email Templates List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplateList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/list-email-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "patch": { + "summary": "Update project email template", + "operationId": "projectUpdateEmailTemplate", + "tags": [ + "project" + ], + "description": "Update a custom email template for the specified locale and type. Use this endpoint to modify the content of your email templates.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/update-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "templateId": { + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "locale": { + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "subject": { + "description": "Subject of the email template. Can be up to 255 characters.", + "type": "string", + "example": "<SUBJECT>", + "nullable": true + }, + "message": { + "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", + "type": "string", + "example": "<MESSAGE>", + "nullable": true + }, + "senderName": { + "description": "Name of the email sender.", + "type": "string", + "example": "<SENDER_NAME>", + "nullable": true + }, + "senderEmail": { + "description": "Email of the sender. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToEmail": { + "description": "Reply to email. Pass an empty string to clear a previously set value.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "replyToName": { + "description": "Reply to name.", + "type": "string", + "example": "<REPLY_TO_NAME>", + "nullable": true + } + }, + "required": [ + "templateId" + ] + } + } + } + } + } + }, + "\/project\/templates\/email\/{templateId}": { + "get": { + "summary": "Get project email template", + "operationId": "projectGetEmailTemplate", + "tags": [ + "project" + ], + "description": "Get a custom email template for the specified locale and type. This endpoint returns the template content, subject, and other configuration details.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "templates", + "demo": "project\/get-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession, otpVerification, otpRecovery", + "required": true, + "schema": { + "type": "string", + "example": "verification", + "title": "ProjectEmailTemplateId", + "oneOf": [ + { + "type": "string", + "enum": [ + "verification" + ], + "title": "verification" + }, + { + "type": "string", + "enum": [ + "magicSession" + ], + "title": "magicSession" + }, + { + "type": "string", + "enum": [ + "recovery" + ], + "title": "recovery" + }, + { + "type": "string", + "enum": [ + "invitation" + ], + "title": "invitation" + }, + { + "type": "string", + "enum": [ + "mfaChallenge" + ], + "title": "mfaChallenge" + }, + { + "type": "string", + "enum": [ + "sessionAlert" + ], + "title": "sessionAlert" + }, + { + "type": "string", + "enum": [ + "otpSession" + ], + "title": "otpSession" + }, + { + "type": "string", + "enum": [ + "otpVerification" + ], + "title": "otpVerification" + }, + { + "type": "string", + "enum": [ + "otpRecovery" + ], + "title": "otpRecovery" + } + ] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "schema": { + "type": "string", + "example": "af", + "title": "ProjectEmailTemplateLocale", + "oneOf": [ + { + "type": "string", + "enum": [ + "af" + ], + "title": "af" + }, + { + "type": "string", + "enum": [ + "ar-ae" + ], + "title": "ar-ae" + }, + { + "type": "string", + "enum": [ + "ar-bh" + ], + "title": "ar-bh" + }, + { + "type": "string", + "enum": [ + "ar-dz" + ], + "title": "ar-dz" + }, + { + "type": "string", + "enum": [ + "ar-eg" + ], + "title": "ar-eg" + }, + { + "type": "string", + "enum": [ + "ar-iq" + ], + "title": "ar-iq" + }, + { + "type": "string", + "enum": [ + "ar-jo" + ], + "title": "ar-jo" + }, + { + "type": "string", + "enum": [ + "ar-kw" + ], + "title": "ar-kw" + }, + { + "type": "string", + "enum": [ + "ar-lb" + ], + "title": "ar-lb" + }, + { + "type": "string", + "enum": [ + "ar-ly" + ], + "title": "ar-ly" + }, + { + "type": "string", + "enum": [ + "ar-ma" + ], + "title": "ar-ma" + }, + { + "type": "string", + "enum": [ + "ar-om" + ], + "title": "ar-om" + }, + { + "type": "string", + "enum": [ + "ar-qa" + ], + "title": "ar-qa" + }, + { + "type": "string", + "enum": [ + "ar-sa" + ], + "title": "ar-sa" + }, + { + "type": "string", + "enum": [ + "ar-sy" + ], + "title": "ar-sy" + }, + { + "type": "string", + "enum": [ + "ar-tn" + ], + "title": "ar-tn" + }, + { + "type": "string", + "enum": [ + "ar-ye" + ], + "title": "ar-ye" + }, + { + "type": "string", + "enum": [ + "as" + ], + "title": "as" + }, + { + "type": "string", + "enum": [ + "az" + ], + "title": "az" + }, + { + "type": "string", + "enum": [ + "be" + ], + "title": "be" + }, + { + "type": "string", + "enum": [ + "bg" + ], + "title": "bg" + }, + { + "type": "string", + "enum": [ + "bh" + ], + "title": "bh" + }, + { + "type": "string", + "enum": [ + "bn" + ], + "title": "bn" + }, + { + "type": "string", + "enum": [ + "bs" + ], + "title": "bs" + }, + { + "type": "string", + "enum": [ + "ca" + ], + "title": "ca" + }, + { + "type": "string", + "enum": [ + "cs" + ], + "title": "cs" + }, + { + "type": "string", + "enum": [ + "cy" + ], + "title": "cy" + }, + { + "type": "string", + "enum": [ + "da" + ], + "title": "da" + }, + { + "type": "string", + "enum": [ + "de" + ], + "title": "de" + }, + { + "type": "string", + "enum": [ + "de-at" + ], + "title": "de-at" + }, + { + "type": "string", + "enum": [ + "de-ch" + ], + "title": "de-ch" + }, + { + "type": "string", + "enum": [ + "de-li" + ], + "title": "de-li" + }, + { + "type": "string", + "enum": [ + "de-lu" + ], + "title": "de-lu" + }, + { + "type": "string", + "enum": [ + "el" + ], + "title": "el" + }, + { + "type": "string", + "enum": [ + "en" + ], + "title": "en" + }, + { + "type": "string", + "enum": [ + "en-au" + ], + "title": "en-au" + }, + { + "type": "string", + "enum": [ + "en-bz" + ], + "title": "en-bz" + }, + { + "type": "string", + "enum": [ + "en-ca" + ], + "title": "en-ca" + }, + { + "type": "string", + "enum": [ + "en-gb" + ], + "title": "en-gb" + }, + { + "type": "string", + "enum": [ + "en-ie" + ], + "title": "en-ie" + }, + { + "type": "string", + "enum": [ + "en-jm" + ], + "title": "en-jm" + }, + { + "type": "string", + "enum": [ + "en-nz" + ], + "title": "en-nz" + }, + { + "type": "string", + "enum": [ + "en-tt" + ], + "title": "en-tt" + }, + { + "type": "string", + "enum": [ + "en-us" + ], + "title": "en-us" + }, + { + "type": "string", + "enum": [ + "en-za" + ], + "title": "en-za" + }, + { + "type": "string", + "enum": [ + "eo" + ], + "title": "eo" + }, + { + "type": "string", + "enum": [ + "es" + ], + "title": "es" + }, + { + "type": "string", + "enum": [ + "es-ar" + ], + "title": "es-ar" + }, + { + "type": "string", + "enum": [ + "es-bo" + ], + "title": "es-bo" + }, + { + "type": "string", + "enum": [ + "es-cl" + ], + "title": "es-cl" + }, + { + "type": "string", + "enum": [ + "es-co" + ], + "title": "es-co" + }, + { + "type": "string", + "enum": [ + "es-cr" + ], + "title": "es-cr" + }, + { + "type": "string", + "enum": [ + "es-do" + ], + "title": "es-do" + }, + { + "type": "string", + "enum": [ + "es-ec" + ], + "title": "es-ec" + }, + { + "type": "string", + "enum": [ + "es-gt" + ], + "title": "es-gt" + }, + { + "type": "string", + "enum": [ + "es-hn" + ], + "title": "es-hn" + }, + { + "type": "string", + "enum": [ + "es-mx" + ], + "title": "es-mx" + }, + { + "type": "string", + "enum": [ + "es-ni" + ], + "title": "es-ni" + }, + { + "type": "string", + "enum": [ + "es-pa" + ], + "title": "es-pa" + }, + { + "type": "string", + "enum": [ + "es-pe" + ], + "title": "es-pe" + }, + { + "type": "string", + "enum": [ + "es-pr" + ], + "title": "es-pr" + }, + { + "type": "string", + "enum": [ + "es-py" + ], + "title": "es-py" + }, + { + "type": "string", + "enum": [ + "es-sv" + ], + "title": "es-sv" + }, + { + "type": "string", + "enum": [ + "es-uy" + ], + "title": "es-uy" + }, + { + "type": "string", + "enum": [ + "es-ve" + ], + "title": "es-ve" + }, + { + "type": "string", + "enum": [ + "et" + ], + "title": "et" + }, + { + "type": "string", + "enum": [ + "eu" + ], + "title": "eu" + }, + { + "type": "string", + "enum": [ + "fa" + ], + "title": "fa" + }, + { + "type": "string", + "enum": [ + "fi" + ], + "title": "fi" + }, + { + "type": "string", + "enum": [ + "fo" + ], + "title": "fo" + }, + { + "type": "string", + "enum": [ + "fr" + ], + "title": "fr" + }, + { + "type": "string", + "enum": [ + "fr-be" + ], + "title": "fr-be" + }, + { + "type": "string", + "enum": [ + "fr-ca" + ], + "title": "fr-ca" + }, + { + "type": "string", + "enum": [ + "fr-ch" + ], + "title": "fr-ch" + }, + { + "type": "string", + "enum": [ + "fr-lu" + ], + "title": "fr-lu" + }, + { + "type": "string", + "enum": [ + "ga" + ], + "title": "ga" + }, + { + "type": "string", + "enum": [ + "gd" + ], + "title": "gd" + }, + { + "type": "string", + "enum": [ + "he" + ], + "title": "he" + }, + { + "type": "string", + "enum": [ + "hi" + ], + "title": "hi" + }, + { + "type": "string", + "enum": [ + "hr" + ], + "title": "hr" + }, + { + "type": "string", + "enum": [ + "hu" + ], + "title": "hu" + }, + { + "type": "string", + "enum": [ + "id" + ], + "title": "id" + }, + { + "type": "string", + "enum": [ + "is" + ], + "title": "is" + }, + { + "type": "string", + "enum": [ + "it" + ], + "title": "it" + }, + { + "type": "string", + "enum": [ + "it-ch" + ], + "title": "it-ch" + }, + { + "type": "string", + "enum": [ + "ja" + ], + "title": "ja" + }, + { + "type": "string", + "enum": [ + "ji" + ], + "title": "ji" + }, + { + "type": "string", + "enum": [ + "ko" + ], + "title": "ko" + }, + { + "type": "string", + "enum": [ + "ku" + ], + "title": "ku" + }, + { + "type": "string", + "enum": [ + "lt" + ], + "title": "lt" + }, + { + "type": "string", + "enum": [ + "lv" + ], + "title": "lv" + }, + { + "type": "string", + "enum": [ + "mk" + ], + "title": "mk" + }, + { + "type": "string", + "enum": [ + "ml" + ], + "title": "ml" + }, + { + "type": "string", + "enum": [ + "ms" + ], + "title": "ms" + }, + { + "type": "string", + "enum": [ + "mt" + ], + "title": "mt" + }, + { + "type": "string", + "enum": [ + "nb" + ], + "title": "nb" + }, + { + "type": "string", + "enum": [ + "ne" + ], + "title": "ne" + }, + { + "type": "string", + "enum": [ + "nl" + ], + "title": "nl" + }, + { + "type": "string", + "enum": [ + "nl-be" + ], + "title": "nl-be" + }, + { + "type": "string", + "enum": [ + "nn" + ], + "title": "nn" + }, + { + "type": "string", + "enum": [ + "no" + ], + "title": "no" + }, + { + "type": "string", + "enum": [ + "pa" + ], + "title": "pa" + }, + { + "type": "string", + "enum": [ + "pl" + ], + "title": "pl" + }, + { + "type": "string", + "enum": [ + "pt" + ], + "title": "pt" + }, + { + "type": "string", + "enum": [ + "pt-br" + ], + "title": "pt-br" + }, + { + "type": "string", + "enum": [ + "rm" + ], + "title": "rm" + }, + { + "type": "string", + "enum": [ + "ro" + ], + "title": "ro" + }, + { + "type": "string", + "enum": [ + "ro-md" + ], + "title": "ro-md" + }, + { + "type": "string", + "enum": [ + "ru" + ], + "title": "ru" + }, + { + "type": "string", + "enum": [ + "ru-md" + ], + "title": "ru-md" + }, + { + "type": "string", + "enum": [ + "sb" + ], + "title": "sb" + }, + { + "type": "string", + "enum": [ + "sk" + ], + "title": "sk" + }, + { + "type": "string", + "enum": [ + "sl" + ], + "title": "sl" + }, + { + "type": "string", + "enum": [ + "sq" + ], + "title": "sq" + }, + { + "type": "string", + "enum": [ + "sr" + ], + "title": "sr" + }, + { + "type": "string", + "enum": [ + "sv" + ], + "title": "sv" + }, + { + "type": "string", + "enum": [ + "sv-fi" + ], + "title": "sv-fi" + }, + { + "type": "string", + "enum": [ + "th" + ], + "title": "th" + }, + { + "type": "string", + "enum": [ + "tn" + ], + "title": "tn" + }, + { + "type": "string", + "enum": [ + "tr" + ], + "title": "tr" + }, + { + "type": "string", + "enum": [ + "ts" + ], + "title": "ts" + }, + { + "type": "string", + "enum": [ + "ua" + ], + "title": "ua" + }, + { + "type": "string", + "enum": [ + "ur" + ], + "title": "ur" + }, + { + "type": "string", + "enum": [ + "ve" + ], + "title": "ve" + }, + { + "type": "string", + "enum": [ + "vi" + ], + "title": "vi" + }, + { + "type": "string", + "enum": [ + "xh" + ], + "title": "xh" + }, + { + "type": "string", + "enum": [ + "zh-cn" + ], + "title": "zh-cn" + }, + { + "type": "string", + "enum": [ + "zh-hk" + ], + "title": "zh-hk" + }, + { + "type": "string", + "enum": [ + "zh-sg" + ], + "title": "zh-sg" + }, + { + "type": "string", + "enum": [ + "zh-tw" + ], + "title": "zh-tw" + }, + { + "type": "string", + "enum": [ + "zu" + ], + "title": "zu" + } + ] + }, + "in": "query" + } + ] + } + }, + "\/project\/variables": { + "get": { + "summary": "List project variables", + "operationId": "projectListVariables", + "tags": [ + "project" + ], + "description": "Get a list of all project environment variables.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create project variable", + "operationId": "projectCreateVariable", + "tags": [ + "project" + ], + "description": "Create a new project environment variable. These variables can be accessed by all functions and sites in the project.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable unique ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/project\/variables\/{variableId}": { + "get": { + "summary": "Get project variable", + "operationId": "projectGetVariable", + "tags": [ + "project" + ], + "description": "Get a variable by its unique ID. ", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project variable", + "operationId": "projectUpdateVariable", + "tags": [ + "project" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete project variable", + "operationId": "projectDeleteVariable", + "tags": [ + "project" + ], + "description": "Delete a variable by its unique ID. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "project\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/proxy\/invalidations": { + "post": { + "summary": "Create invalidation", + "operationId": "proxyCreateInvalidation", + "tags": [ + "proxy" + ], + "description": "Create a new CDN cache invalidation for a domain. Executes a hard purge of cached content.\n\nDepending on type, the invalidation purges a single cache tag, a single URL path, or all cached content for the domain.\n\nDomains that route to a function do not support cache invalidation.", + "responses": { + "201": { + "description": "Invalidation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyInvalidation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "proxy\/create-invalidation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "proxy.invalidations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "type": { + "description": "Type of reference passed. Allowed values are: tag, path, all", + "type": "string", + "example": "tag", + "title": "InvalidationType", + "oneOf": [ + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + }, + { + "type": "string", + "enum": [ + "path" + ], + "title": "path" + }, + { + "type": "string", + "enum": [ + "all" + ], + "title": "all" + } + ] + }, + "reference": { + "description": "Reference to invalidate. Depending on type this can be: cache tag name (up to 128 characters), URL path (up to 2048 characters). Not required when type is all.", + "type": "string", + "default": "", + "example": "<REFERENCE>" + } + }, + "required": [ + "domain", + "type" + ] + }, + "examples": { + "tag": { + "summary": "Purge a cache tag", + "value": { + "domain": "example.com", + "type": "tag", + "reference": "<TAG>" + } + }, + "path": { + "summary": "Purge a URL path", + "value": { + "domain": "example.com", + "type": "path", + "reference": "\/blog\/hello-world" + } + } + } + } + } + } + } + }, + "\/proxy\/rules": { + "get": { + "summary": "List rules", + "operationId": "proxyListRules", + "tags": [ + "proxy" + ], + "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rule List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/proxy\/rules\/api": { + "post": { + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/create-api-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + } + }, + "required": [ + "domain" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/function": { + "post": { + "summary": "Create function rule", + "operationId": "proxyCreateFunctionRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for executing Appwrite Function on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/create-function-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "functionId": { + "description": "ID of function to be executed.", + "type": "string", + "example": "<FUNCTION_ID>" + }, + "branch": { + "description": "Name of VCS branch to deploy changes automatically", + "type": "string", + "default": "", + "example": "<BRANCH>" + } + }, + "required": [ + "domain", + "functionId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create redirect rule", + "operationId": "proxyCreateRedirectRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for to redirect from custom domain to another domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/create-redirect-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "url": { + "description": "Target URL of redirection", + "type": "string", + "example": "https:\/\/example.com", + "format": "url" + }, + "statusCode": { + "description": "Status code of redirection", + "type": "string", + "example": "301", + "title": "StatusCode", + "oneOf": [ + { + "type": "string", + "enum": [ + "301" + ], + "title": "MovedPermanently" + }, + { + "type": "string", + "enum": [ + "302" + ], + "title": "Found" + }, + { + "type": "string", + "enum": [ + "307" + ], + "title": "TemporaryRedirect" + }, + { + "type": "string", + "enum": [ + "308" + ], + "title": "PermanentRedirect" + } + ] + }, + "resourceId": { + "description": "ID of parent resource.", + "type": "string", + "example": "<RESOURCE_ID>" + }, + "resourceType": { + "description": "Type of parent resource.", + "type": "string", + "example": "site", + "title": "ProxyResourceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "site" + ], + "title": "Site" + }, + { + "type": "string", + "enum": [ + "function" + ], + "title": "Function" + } + ] + } + }, + "required": [ + "domain", + "url", + "statusCode", + "resourceId", + "resourceType" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/site": { + "post": { + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/create-site-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "description": "Domain name.", + "type": "string", + "example": "example.com" + }, + "siteId": { + "description": "ID of site to be executed.", + "type": "string", + "example": "<SITE_ID>" + }, + "branch": { + "description": "Name of VCS branch to deploy changes automatically", + "type": "string", + "default": "", + "example": "<BRANCH>" + } + }, + "required": [ + "domain", + "siteId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/{ruleId}": { + "get": { + "summary": "Get rule", + "operationId": "proxyGetRule", + "tags": [ + "proxy" + ], + "description": "Get a proxy rule by its unique ID.", + "responses": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete rule", + "operationId": "proxyDeleteRule", + "tags": [ + "proxy" + ], + "description": "Delete a proxy rule by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/delete-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/proxy\/rules\/{ruleId}\/status": { + "patch": { + "summary": "Update rule status", + "operationId": "proxyUpdateRuleStatus", + "tags": [ + "proxy" + ], + "description": "If not succeeded yet, retry verification process of a proxy rule domain. This endpoint triggers domain verification by checking DNS records. If verification is successful, a TLS certificate will be automatically provisioned for the domain asynchronously in the background.", + "responses": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "proxy\/update-rule-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/reports": { + "get": { + "summary": "List reports", + "operationId": "advisorListReports", + "tags": [ + "advisor" + ], + "description": "Get a list of all the project's analyzer reports. You can use the query params to filter your results.\n", + "responses": { + "200": { + "description": "Reports List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/reportList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "reports", + "demo": "advisor\/list-reports.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "reports.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: appId, type, targetType, target, analyzedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/reports\/{reportId}": { + "get": { + "summary": "Get report", + "operationId": "advisorGetReport", + "tags": [ + "advisor" + ], + "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", + "responses": { + "200": { + "description": "Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/report" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "reports", + "demo": "advisor\/get-report.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "reports.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete report", + "operationId": "advisorDeleteReport", + "tags": [ + "advisor" + ], + "description": "Delete an analyzer report by its unique ID. Nested insights and CTA metadata are removed asynchronously by the deletes worker.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "reports", + "demo": "advisor\/delete-report.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{projectId},userId:{userId}", + "scope": "reports.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/reports\/{reportId}\/insights": { + "get": { + "summary": "List insights", + "operationId": "advisorListInsights", + "tags": [ + "advisor" + ], + "description": "List the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", + "responses": { + "200": { + "description": "Insights List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/insightList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "insights", + "demo": "advisor\/list-insights.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Parent report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/reports\/{reportId}\/insights\/{insightId}": { + "get": { + "summary": "Get insight", + "operationId": "advisorGetInsight", + "tags": [ + "advisor" + ], + "description": "Get an insight by its unique ID, scoped to its parent report.\n", + "responses": { + "200": { + "description": "Insight", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/insight" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "insights", + "demo": "advisor\/get-insight.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "reportId", + "description": "Parent report ID.", + "required": true, + "schema": { + "type": "string", + "example": "<REPORT_ID>" + }, + "in": "path" + }, + { + "name": "insightId", + "description": "Insight ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSIGHT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites": { + "get": { + "summary": "List sites", + "operationId": "sitesList", + "tags": [ + "sites" + ], + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Sites List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/siteList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create site", + "operationId": "sitesCreate", + "tags": [ + "sites" + ], + "description": "Create a new site.", + "responses": { + "201": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "siteId": { + "description": "Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<SITE_ID>" + }, + "name": { + "description": "Site name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "framework": { + "description": "Sites framework.", + "type": "string", + "example": "analog", + "title": "Framework", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "enabled": { + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "timeout": { + "description": "Maximum request time in seconds.", + "type": "integer", + "default": 30, + "example": 1, + "format": "int32" + }, + "installCommand": { + "description": "Install Command.", + "type": "string", + "default": "", + "example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "description": "Build Command.", + "type": "string", + "default": "", + "example": "<BUILD_COMMAND>" + }, + "startCommand": { + "description": "Custom start command. Leave empty to use default.", + "type": "string", + "default": "", + "example": "<START_COMMAND>" + }, + "outputDirectory": { + "description": "Output Directory for site.", + "type": "string", + "default": "", + "example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "description": "Runtime to use during build step.", + "type": "string", + "example": "node-14.5", + "title": "BuildRuntime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "adapter": { + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "type": "string", + "example": "static", + "title": "Adapter", + "oneOf": [ + { + "type": "string", + "enum": [ + "static" + ], + "title": "static" + }, + { + "type": "string", + "enum": [ + "ssr" + ], + "title": "ssr" + } + ] + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "description": "Fallback file for single page application sites.", + "type": "string", + "default": "", + "example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "description": "Production branch for the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to site code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "buildSpecification": { + "description": "Build specification for the site deployments.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "description": "Runtime specification for the SSR executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", + "type": "array", + "default": [], + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + } + } + }, + "required": [ + "siteId", + "name", + "framework", + "buildRuntime" + ] + } + } + } + } + } + }, + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", + "tags": [ + "sites" + ], + "description": "Get a list of all frameworks that are currently available on the server instance.", + "responses": { + "200": { + "description": "Frameworks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/frameworkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "frameworks", + "demo": "sites\/list-frameworks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "tags": [ + "sites" + ], + "description": "List allowed site specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "frameworks", + "demo": "sites\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "type", + "description": "Specification type to list. Can be one of: runtimes, builds. Defaults to runtimes.", + "required": false, + "schema": { + "type": "string", + "example": "runtimes", + "default": "runtimes" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", + "tags": [ + "sites" + ], + "description": "Get a site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", + "tags": [ + "sites" + ], + "description": "Update site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Site name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "framework": { + "description": "Sites framework.", + "type": "string", + "example": "analog", + "title": "Framework", + "oneOf": [ + { + "type": "string", + "enum": [ + "analog" + ], + "title": "analog" + }, + { + "type": "string", + "enum": [ + "angular" + ], + "title": "angular" + }, + { + "type": "string", + "enum": [ + "nextjs" + ], + "title": "nextjs" + }, + { + "type": "string", + "enum": [ + "react" + ], + "title": "react" + }, + { + "type": "string", + "enum": [ + "nuxt" + ], + "title": "nuxt" + }, + { + "type": "string", + "enum": [ + "vue" + ], + "title": "vue" + }, + { + "type": "string", + "enum": [ + "sveltekit" + ], + "title": "sveltekit" + }, + { + "type": "string", + "enum": [ + "astro" + ], + "title": "astro" + }, + { + "type": "string", + "enum": [ + "tanstack-start" + ], + "title": "tanstack-start" + }, + { + "type": "string", + "enum": [ + "remix" + ], + "title": "remix" + }, + { + "type": "string", + "enum": [ + "lynx" + ], + "title": "lynx" + }, + { + "type": "string", + "enum": [ + "flutter" + ], + "title": "flutter" + }, + { + "type": "string", + "enum": [ + "jaspr" + ], + "title": "jaspr" + }, + { + "type": "string", + "enum": [ + "react-native" + ], + "title": "react-native" + }, + { + "type": "string", + "enum": [ + "vite" + ], + "title": "vite" + }, + { + "type": "string", + "enum": [ + "other" + ], + "title": "other" + } + ] + }, + "enabled": { + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "logging": { + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "type": "boolean", + "default": true, + "example": false + }, + "timeout": { + "description": "Maximum request time in seconds.", + "type": "integer", + "default": 30, + "example": 1, + "format": "int32" + }, + "installCommand": { + "description": "Install Command.", + "type": "string", + "default": "", + "example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "description": "Build Command.", + "type": "string", + "default": "", + "example": "<BUILD_COMMAND>" + }, + "startCommand": { + "description": "Custom start command. Leave empty to use default.", + "type": "string", + "default": "", + "example": "<START_COMMAND>" + }, + "outputDirectory": { + "description": "Output Directory for site.", + "type": "string", + "default": "", + "example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "description": "Runtime to use during build step.", + "type": "string", + "example": "node-14.5", + "title": "BuildRuntime", + "oneOf": [ + { + "type": "string", + "enum": [ + "node-14.5" + ], + "title": "node-14.5" + }, + { + "type": "string", + "enum": [ + "node-16.0" + ], + "title": "node-16.0" + }, + { + "type": "string", + "enum": [ + "node-18.0" + ], + "title": "node-18.0" + }, + { + "type": "string", + "enum": [ + "node-19.0" + ], + "title": "node-19.0" + }, + { + "type": "string", + "enum": [ + "node-20.0" + ], + "title": "node-20.0" + }, + { + "type": "string", + "enum": [ + "node-21.0" + ], + "title": "node-21.0" + }, + { + "type": "string", + "enum": [ + "node-22" + ], + "title": "node-22" + }, + { + "type": "string", + "enum": [ + "node-23" + ], + "title": "node-23" + }, + { + "type": "string", + "enum": [ + "node-24" + ], + "title": "node-24" + }, + { + "type": "string", + "enum": [ + "node-25" + ], + "title": "node-25" + }, + { + "type": "string", + "enum": [ + "node-26" + ], + "title": "node-26" + }, + { + "type": "string", + "enum": [ + "php-8.0" + ], + "title": "php-8.0" + }, + { + "type": "string", + "enum": [ + "php-8.1" + ], + "title": "php-8.1" + }, + { + "type": "string", + "enum": [ + "php-8.2" + ], + "title": "php-8.2" + }, + { + "type": "string", + "enum": [ + "php-8.3" + ], + "title": "php-8.3" + }, + { + "type": "string", + "enum": [ + "php-8.4" + ], + "title": "php-8.4" + }, + { + "type": "string", + "enum": [ + "ruby-3.0" + ], + "title": "ruby-3.0" + }, + { + "type": "string", + "enum": [ + "ruby-3.1" + ], + "title": "ruby-3.1" + }, + { + "type": "string", + "enum": [ + "ruby-3.2" + ], + "title": "ruby-3.2" + }, + { + "type": "string", + "enum": [ + "ruby-3.3" + ], + "title": "ruby-3.3" + }, + { + "type": "string", + "enum": [ + "ruby-3.4" + ], + "title": "ruby-3.4" + }, + { + "type": "string", + "enum": [ + "ruby-4.0" + ], + "title": "ruby-4.0" + }, + { + "type": "string", + "enum": [ + "python-3.8" + ], + "title": "python-3.8" + }, + { + "type": "string", + "enum": [ + "python-3.9" + ], + "title": "python-3.9" + }, + { + "type": "string", + "enum": [ + "python-3.10" + ], + "title": "python-3.10" + }, + { + "type": "string", + "enum": [ + "python-3.11" + ], + "title": "python-3.11" + }, + { + "type": "string", + "enum": [ + "python-3.12" + ], + "title": "python-3.12" + }, + { + "type": "string", + "enum": [ + "python-3.13" + ], + "title": "python-3.13" + }, + { + "type": "string", + "enum": [ + "python-3.14" + ], + "title": "python-3.14" + }, + { + "type": "string", + "enum": [ + "python-ml-3.11" + ], + "title": "python-ml-3.11" + }, + { + "type": "string", + "enum": [ + "python-ml-3.12" + ], + "title": "python-ml-3.12" + }, + { + "type": "string", + "enum": [ + "python-ml-3.13" + ], + "title": "python-ml-3.13" + }, + { + "type": "string", + "enum": [ + "deno-1.40" + ], + "title": "deno-1.40" + }, + { + "type": "string", + "enum": [ + "deno-1.46" + ], + "title": "deno-1.46" + }, + { + "type": "string", + "enum": [ + "deno-2.0" + ], + "title": "deno-2.0" + }, + { + "type": "string", + "enum": [ + "deno-2.5" + ], + "title": "deno-2.5" + }, + { + "type": "string", + "enum": [ + "deno-2.6" + ], + "title": "deno-2.6" + }, + { + "type": "string", + "enum": [ + "dart-2.15" + ], + "title": "dart-2.15" + }, + { + "type": "string", + "enum": [ + "dart-2.16" + ], + "title": "dart-2.16" + }, + { + "type": "string", + "enum": [ + "dart-2.17" + ], + "title": "dart-2.17" + }, + { + "type": "string", + "enum": [ + "dart-2.18" + ], + "title": "dart-2.18" + }, + { + "type": "string", + "enum": [ + "dart-2.19" + ], + "title": "dart-2.19" + }, + { + "type": "string", + "enum": [ + "dart-3.0" + ], + "title": "dart-3.0" + }, + { + "type": "string", + "enum": [ + "dart-3.1" + ], + "title": "dart-3.1" + }, + { + "type": "string", + "enum": [ + "dart-3.3" + ], + "title": "dart-3.3" + }, + { + "type": "string", + "enum": [ + "dart-3.5" + ], + "title": "dart-3.5" + }, + { + "type": "string", + "enum": [ + "dart-3.8" + ], + "title": "dart-3.8" + }, + { + "type": "string", + "enum": [ + "dart-3.9" + ], + "title": "dart-3.9" + }, + { + "type": "string", + "enum": [ + "dart-3.10" + ], + "title": "dart-3.10" + }, + { + "type": "string", + "enum": [ + "dart-3.11" + ], + "title": "dart-3.11" + }, + { + "type": "string", + "enum": [ + "dart-3.12" + ], + "title": "dart-3.12" + }, + { + "type": "string", + "enum": [ + "dart-3.13" + ], + "title": "dart-3.13" + }, + { + "type": "string", + "enum": [ + "dotnet-6.0" + ], + "title": "dotnet-6.0" + }, + { + "type": "string", + "enum": [ + "dotnet-7.0" + ], + "title": "dotnet-7.0" + }, + { + "type": "string", + "enum": [ + "dotnet-8.0" + ], + "title": "dotnet-8.0" + }, + { + "type": "string", + "enum": [ + "dotnet-10" + ], + "title": "dotnet-10" + }, + { + "type": "string", + "enum": [ + "java-8.0" + ], + "title": "java-8.0" + }, + { + "type": "string", + "enum": [ + "java-11.0" + ], + "title": "java-11.0" + }, + { + "type": "string", + "enum": [ + "java-17.0" + ], + "title": "java-17.0" + }, + { + "type": "string", + "enum": [ + "java-18.0" + ], + "title": "java-18.0" + }, + { + "type": "string", + "enum": [ + "java-21.0" + ], + "title": "java-21.0" + }, + { + "type": "string", + "enum": [ + "java-22" + ], + "title": "java-22" + }, + { + "type": "string", + "enum": [ + "java-25" + ], + "title": "java-25" + }, + { + "type": "string", + "enum": [ + "swift-5.5" + ], + "title": "swift-5.5" + }, + { + "type": "string", + "enum": [ + "swift-5.8" + ], + "title": "swift-5.8" + }, + { + "type": "string", + "enum": [ + "swift-5.9" + ], + "title": "swift-5.9" + }, + { + "type": "string", + "enum": [ + "swift-5.10" + ], + "title": "swift-5.10" + }, + { + "type": "string", + "enum": [ + "swift-6.2" + ], + "title": "swift-6.2" + }, + { + "type": "string", + "enum": [ + "kotlin-1.6" + ], + "title": "kotlin-1.6" + }, + { + "type": "string", + "enum": [ + "kotlin-1.8" + ], + "title": "kotlin-1.8" + }, + { + "type": "string", + "enum": [ + "kotlin-1.9" + ], + "title": "kotlin-1.9" + }, + { + "type": "string", + "enum": [ + "kotlin-2.0" + ], + "title": "kotlin-2.0" + }, + { + "type": "string", + "enum": [ + "kotlin-2.3" + ], + "title": "kotlin-2.3" + }, + { + "type": "string", + "enum": [ + "cpp-17" + ], + "title": "cpp-17" + }, + { + "type": "string", + "enum": [ + "cpp-20" + ], + "title": "cpp-20" + }, + { + "type": "string", + "enum": [ + "bun-1.0" + ], + "title": "bun-1.0" + }, + { + "type": "string", + "enum": [ + "bun-1.1" + ], + "title": "bun-1.1" + }, + { + "type": "string", + "enum": [ + "bun-1.2" + ], + "title": "bun-1.2" + }, + { + "type": "string", + "enum": [ + "bun-1.3" + ], + "title": "bun-1.3" + }, + { + "type": "string", + "enum": [ + "bun-1.4" + ], + "title": "bun-1.4" + }, + { + "type": "string", + "enum": [ + "go-1.23" + ], + "title": "go-1.23" + }, + { + "type": "string", + "enum": [ + "go-1.24" + ], + "title": "go-1.24" + }, + { + "type": "string", + "enum": [ + "go-1.25" + ], + "title": "go-1.25" + }, + { + "type": "string", + "enum": [ + "go-1.26" + ], + "title": "go-1.26" + }, + { + "type": "string", + "enum": [ + "rust-1.83" + ], + "title": "rust-1.83" + }, + { + "type": "string", + "enum": [ + "static-1" + ], + "title": "static-1" + }, + { + "type": "string", + "enum": [ + "flutter-3.24" + ], + "title": "flutter-3.24" + }, + { + "type": "string", + "enum": [ + "flutter-3.27" + ], + "title": "flutter-3.27" + }, + { + "type": "string", + "enum": [ + "flutter-3.29" + ], + "title": "flutter-3.29" + }, + { + "type": "string", + "enum": [ + "flutter-3.32" + ], + "title": "flutter-3.32" + }, + { + "type": "string", + "enum": [ + "flutter-3.35" + ], + "title": "flutter-3.35" + }, + { + "type": "string", + "enum": [ + "flutter-3.38" + ], + "title": "flutter-3.38" + }, + { + "type": "string", + "enum": [ + "flutter-3.41" + ], + "title": "flutter-3.41" + }, + { + "type": "string", + "enum": [ + "flutter-3.44" + ], + "title": "flutter-3.44" + }, + { + "type": "string", + "enum": [ + "flutter-3.47" + ], + "title": "flutter-3.47" + } + ] + }, + "adapter": { + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "type": "string", + "example": "static", + "title": "Adapter", + "oneOf": [ + { + "type": "string", + "enum": [ + "static" + ], + "title": "static" + }, + { + "type": "string", + "enum": [ + "ssr" + ], + "title": "ssr" + } + ] + }, + "fallbackFile": { + "description": "Fallback file for single page application sites.", + "type": "string", + "default": "", + "example": "<FALLBACK_FILE>" + }, + "installationId": { + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "type": "string", + "default": "", + "example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "description": "Repository ID of the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_REPOSITORY_ID>", + "nullable": true + }, + "providerBranch": { + "description": "Production branch for the repo linked to the site.", + "type": "string", + "default": "", + "example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "type": "boolean", + "default": false, + "example": false + }, + "providerRootDirectory": { + "description": "Path to site code in the linked repo.", + "type": "string", + "default": "", + "example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "providerBranches": { + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "providerPaths": { + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "buildSpecification": { + "description": "Build specification for the site deployments.", + "type": "string", + "example": "s-1vcpu-512mb", + "nullable": true + }, + "runtimeSpecification": { + "description": "Runtime specification for the SSR executions.", + "type": "string", + "default": {}, + "example": "s-1vcpu-512mb" + }, + "deploymentRetention": { + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "scopes": { + "description": "List of scopes allowed for API key auto-generated for every site build and SSR execution. Maximum of 200 scopes are allowed.", + "type": "array", + "items": { + "title": "ProjectKeyScopes", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "project.read" + ], + "title": "project.read" + }, + { + "type": "string", + "enum": [ + "project.write" + ], + "title": "project.write" + }, + { + "type": "string", + "enum": [ + "usage.read" + ], + "title": "usage.read" + }, + { + "type": "string", + "enum": [ + "keys.read" + ], + "title": "keys.read" + }, + { + "type": "string", + "enum": [ + "keys.write" + ], + "title": "keys.write" + }, + { + "type": "string", + "enum": [ + "platforms.read" + ], + "title": "platforms.read" + }, + { + "type": "string", + "enum": [ + "platforms.write" + ], + "title": "platforms.write" + }, + { + "type": "string", + "enum": [ + "mocks.read" + ], + "title": "mocks.read" + }, + { + "type": "string", + "enum": [ + "mocks.write" + ], + "title": "mocks.write" + }, + { + "type": "string", + "enum": [ + "policies.read" + ], + "title": "policies.read" + }, + { + "type": "string", + "enum": [ + "policies.write" + ], + "title": "policies.write" + }, + { + "type": "string", + "enum": [ + "project.policies.read" + ], + "title": "project.policies.read" + }, + { + "type": "string", + "enum": [ + "project.policies.write" + ], + "title": "project.policies.write" + }, + { + "type": "string", + "enum": [ + "project.oauth2.read" + ], + "title": "project.oauth2.read" + }, + { + "type": "string", + "enum": [ + "project.oauth2.write" + ], + "title": "project.oauth2.write" + }, + { + "type": "string", + "enum": [ + "templates.read" + ], + "title": "templates.read" + }, + { + "type": "string", + "enum": [ + "templates.write" + ], + "title": "templates.write" + }, + { + "type": "string", + "enum": [ + "stages.read" + ], + "title": "stages.read" + }, + { + "type": "string", + "enum": [ + "stages.write" + ], + "title": "stages.write" + }, + { + "type": "string", + "enum": [ + "users.read" + ], + "title": "users.read" + }, + { + "type": "string", + "enum": [ + "users.write" + ], + "title": "users.write" + }, + { + "type": "string", + "enum": [ + "sessions.read" + ], + "title": "sessions.read" + }, + { + "type": "string", + "enum": [ + "sessions.write" + ], + "title": "sessions.write" + }, + { + "type": "string", + "enum": [ + "teams.read" + ], + "title": "teams.read" + }, + { + "type": "string", + "enum": [ + "teams.write" + ], + "title": "teams.write" + }, + { + "type": "string", + "enum": [ + "databases.read" + ], + "title": "databases.read" + }, + { + "type": "string", + "enum": [ + "databases.write" + ], + "title": "databases.write" + }, + { + "type": "string", + "enum": [ + "tables.read" + ], + "title": "tables.read" + }, + { + "type": "string", + "enum": [ + "tables.write" + ], + "title": "tables.write" + }, + { + "type": "string", + "enum": [ + "columns.read" + ], + "title": "columns.read" + }, + { + "type": "string", + "enum": [ + "columns.write" + ], + "title": "columns.write" + }, + { + "type": "string", + "enum": [ + "indexes.read" + ], + "title": "indexes.read" + }, + { + "type": "string", + "enum": [ + "indexes.write" + ], + "title": "indexes.write" + }, + { + "type": "string", + "enum": [ + "rows.read" + ], + "title": "rows.read" + }, + { + "type": "string", + "enum": [ + "rows.write" + ], + "title": "rows.write" + }, + { + "type": "string", + "enum": [ + "embeddings.write" + ], + "title": "embeddings.write" + }, + { + "type": "string", + "enum": [ + "collections.read" + ], + "title": "collections.read" + }, + { + "type": "string", + "enum": [ + "collections.write" + ], + "title": "collections.write" + }, + { + "type": "string", + "enum": [ + "attributes.read" + ], + "title": "attributes.read" + }, + { + "type": "string", + "enum": [ + "attributes.write" + ], + "title": "attributes.write" + }, + { + "type": "string", + "enum": [ + "documents.read" + ], + "title": "documents.read" + }, + { + "type": "string", + "enum": [ + "documents.write" + ], + "title": "documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.read" + ], + "title": "documentsdb.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.write" + ], + "title": "documentsdb.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.read" + ], + "title": "documentsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.collections.write" + ], + "title": "documentsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.read" + ], + "title": "documentsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.documents.write" + ], + "title": "documentsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.read" + ], + "title": "documentsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "documentsdb.indexes.write" + ], + "title": "documentsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.read" + ], + "title": "vectorsdb.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.write" + ], + "title": "vectorsdb.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.read" + ], + "title": "vectorsdb.collections.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.collections.write" + ], + "title": "vectorsdb.collections.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.read" + ], + "title": "vectorsdb.documents.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.documents.write" + ], + "title": "vectorsdb.documents.write" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.read" + ], + "title": "vectorsdb.indexes.read" + }, + { + "type": "string", + "enum": [ + "vectorsdb.indexes.write" + ], + "title": "vectorsdb.indexes.write" + }, + { + "type": "string", + "enum": [ + "buckets.read" + ], + "title": "buckets.read" + }, + { + "type": "string", + "enum": [ + "buckets.write" + ], + "title": "buckets.write" + }, + { + "type": "string", + "enum": [ + "files.read" + ], + "title": "files.read" + }, + { + "type": "string", + "enum": [ + "files.write" + ], + "title": "files.write" + }, + { + "type": "string", + "enum": [ + "tokens.read" + ], + "title": "tokens.read" + }, + { + "type": "string", + "enum": [ + "tokens.write" + ], + "title": "tokens.write" + }, + { + "type": "string", + "enum": [ + "functions.read" + ], + "title": "functions.read" + }, + { + "type": "string", + "enum": [ + "functions.write" + ], + "title": "functions.write" + }, + { + "type": "string", + "enum": [ + "executions.read" + ], + "title": "executions.read" + }, + { + "type": "string", + "enum": [ + "executions.write" + ], + "title": "executions.write" + }, + { + "type": "string", + "enum": [ + "execution.read" + ], + "title": "execution.read" + }, + { + "type": "string", + "enum": [ + "execution.write" + ], + "title": "execution.write" + }, + { + "type": "string", + "enum": [ + "sites.read" + ], + "title": "sites.read" + }, + { + "type": "string", + "enum": [ + "sites.write" + ], + "title": "sites.write" + }, + { + "type": "string", + "enum": [ + "log.read" + ], + "title": "log.read" + }, + { + "type": "string", + "enum": [ + "log.write" + ], + "title": "log.write" + }, + { + "type": "string", + "enum": [ + "providers.read" + ], + "title": "providers.read" + }, + { + "type": "string", + "enum": [ + "providers.write" + ], + "title": "providers.write" + }, + { + "type": "string", + "enum": [ + "topics.read" + ], + "title": "topics.read" + }, + { + "type": "string", + "enum": [ + "topics.write" + ], + "title": "topics.write" + }, + { + "type": "string", + "enum": [ + "subscribers.read" + ], + "title": "subscribers.read" + }, + { + "type": "string", + "enum": [ + "subscribers.write" + ], + "title": "subscribers.write" + }, + { + "type": "string", + "enum": [ + "targets.read" + ], + "title": "targets.read" + }, + { + "type": "string", + "enum": [ + "targets.write" + ], + "title": "targets.write" + }, + { + "type": "string", + "enum": [ + "messages.read" + ], + "title": "messages.read" + }, + { + "type": "string", + "enum": [ + "messages.write" + ], + "title": "messages.write" + }, + { + "type": "string", + "enum": [ + "rules.read" + ], + "title": "rules.read" + }, + { + "type": "string", + "enum": [ + "rules.write" + ], + "title": "rules.write" + }, + { + "type": "string", + "enum": [ + "webhooks.read" + ], + "title": "webhooks.read" + }, + { + "type": "string", + "enum": [ + "webhooks.write" + ], + "title": "webhooks.write" + }, + { + "type": "string", + "enum": [ + "locale.read" + ], + "title": "locale.read" + }, + { + "type": "string", + "enum": [ + "avatars.read" + ], + "title": "avatars.read" + }, + { + "type": "string", + "enum": [ + "avatars.write" + ], + "title": "avatars.write" + }, + { + "type": "string", + "enum": [ + "health.read" + ], + "title": "health.read" + }, + { + "type": "string", + "enum": [ + "assistant.read" + ], + "title": "assistant.read" + }, + { + "type": "string", + "enum": [ + "migrations.read" + ], + "title": "migrations.read" + }, + { + "type": "string", + "enum": [ + "migrations.write" + ], + "title": "migrations.write" + }, + { + "type": "string", + "enum": [ + "schedules.read" + ], + "title": "schedules.read" + }, + { + "type": "string", + "enum": [ + "schedules.write" + ], + "title": "schedules.write" + }, + { + "type": "string", + "enum": [ + "vcs.read" + ], + "title": "vcs.read" + }, + { + "type": "string", + "enum": [ + "vcs.write" + ], + "title": "vcs.write" + }, + { + "type": "string", + "enum": [ + "insights.read" + ], + "title": "insights.read" + }, + { + "type": "string", + "enum": [ + "insights.write" + ], + "title": "insights.write" + }, + { + "type": "string", + "enum": [ + "reports.read" + ], + "title": "reports.read" + }, + { + "type": "string", + "enum": [ + "reports.write" + ], + "title": "reports.write" + }, + { + "type": "string", + "enum": [ + "presences.read" + ], + "title": "presences.read" + }, + { + "type": "string", + "enum": [ + "presences.write" + ], + "title": "presences.write" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabases.execute" + ], + "title": "dedicatedDatabases.execute" + }, + { + "type": "string", + "enum": [ + "backups.policies.read" + ], + "title": "backups.policies.read" + }, + { + "type": "string", + "enum": [ + "backups.policies.write" + ], + "title": "backups.policies.write" + }, + { + "type": "string", + "enum": [ + "archives.read" + ], + "title": "archives.read" + }, + { + "type": "string", + "enum": [ + "archives.write" + ], + "title": "archives.write" + }, + { + "type": "string", + "enum": [ + "restorations.read" + ], + "title": "restorations.read" + }, + { + "type": "string", + "enum": [ + "restorations.write" + ], + "title": "restorations.write" + }, + { + "type": "string", + "enum": [ + "domains.read" + ], + "title": "domains.read" + }, + { + "type": "string", + "enum": [ + "domains.write" + ], + "title": "domains.write" + }, + { + "type": "string", + "enum": [ + "wafRules.read" + ], + "title": "wafRules.read" + }, + { + "type": "string", + "enum": [ + "wafRules.write" + ], + "title": "wafRules.write" + }, + { + "type": "string", + "enum": [ + "events.read" + ], + "title": "events.read" + }, + { + "type": "string", + "enum": [ + "proxy.invalidations.write" + ], + "title": "proxy.invalidations.write" + }, + { + "type": "string", + "enum": [ + "apps.read" + ], + "title": "apps.read" + }, + { + "type": "string", + "enum": [ + "apps.write" + ], + "title": "apps.write" + }, + { + "type": "string", + "enum": [ + "oauth2.read" + ], + "title": "oauth2.read" + }, + { + "type": "string", + "enum": [ + "oauth2.write" + ], + "title": "oauth2.write" + }, + { + "type": "string", + "enum": [ + "oauth2.introspect" + ], + "title": "oauth2.introspect" + }, + { + "type": "string", + "enum": [ + "analytics.read" + ], + "title": "analytics.read" + }, + { + "type": "string", + "enum": [ + "analytics.write" + ], + "title": "analytics.write" + } + ] + }, + "nullable": true + } + }, + "required": [ + "name", + "framework" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete site", + "operationId": "sitesDelete", + "tags": [ + "sites" + ], + "description": "Delete a site by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", + "tags": [ + "sites" + ], + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sites", + "demo": "sites\/update-site-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "sitesListDeployments", + "tags": [ + "sites" + ], + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", + "tags": [ + "sites" + ], + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "installCommand": { + "description": "Install Commands.", + "type": "string", + "example": "<INSTALL_COMMAND>", + "nullable": true + }, + "buildCommand": { + "description": "Build Commands.", + "type": "string", + "example": "<BUILD_COMMAND>", + "nullable": true + }, + "outputDirectory": { + "description": "Output Directory.", + "type": "string", + "example": "<OUTPUT_DIRECTORY>", + "nullable": true + }, + "code": { + "description": "Gzip file with your code package. When used with the Appwrite CLI, pass the path to your code directory, and the CLI will automatically package your code. Use a path that is within the current directory.", + "type": "string", + "format": "binary" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "code" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", + "tags": [ + "sites" + ], + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "description": "Deployment ID.", + "type": "string", + "example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", + "tags": [ + "sites" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "description": "Repository name of the template.", + "type": "string", + "example": "<REPOSITORY>" + }, + "owner": { + "description": "The name of the owner of the template.", + "type": "string", + "example": "<OWNER>" + }, + "rootDirectory": { + "description": "Path to site code in the template repo.", + "type": "string", + "example": "<ROOT_DIRECTORY>" + }, + "type": { + "description": "Type for the reference provided. Can be commit, branch, or tag", + "type": "string", + "example": "branch", + "title": "TemplateReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "Reference value, can be a commit hash, branch name, or release tag", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", + "tags": [ + "sites" + ], + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "description": "Type of reference passed. Allowed values are: branch, commit", + "type": "string", + "example": "branch", + "title": "VCSReferenceType", + "oneOf": [ + { + "type": "string", + "enum": [ + "branch" + ], + "title": "branch" + }, + { + "type": "string", + "enum": [ + "commit" + ], + "title": "commit" + }, + { + "type": "string", + "enum": [ + "tag" + ], + "title": "tag" + } + ] + }, + "reference": { + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "type": "string", + "example": "<REFERENCE>" + }, + "activate": { + "description": "Automatically activate the deployment when it is finished building.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", + "tags": [ + "sites" + ], + "description": "Get a site deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", + "tags": [ + "sites" + ], + "description": "Delete a site deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", + "tags": [ + "sites" + ], + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "public", + "sites.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "example": "source", + "title": "DeploymentDownloadType", + "oneOf": [ + { + "type": "string", + "enum": [ + "source" + ], + "title": "source" + }, + { + "type": "string", + "enum": [ + "output" + ], + "title": "output" + } + ], + "default": "source" + }, + "in": "query" + }, + { + "name": "token", + "description": "Presigned source-download token for accessing this deployment without a session (jobs-service).", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", + "tags": [ + "sites" + ], + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "deployments", + "demo": "sites\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DEPLOYMENT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/logs": { + "get": { + "summary": "List logs", + "operationId": "sitesListLogs", + "tags": [ + "sites" + ], + "description": "Get a list of all site logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/executionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "sites\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/logs\/{logId}": { + "get": { + "summary": "Get log", + "operationId": "sitesGetLog", + "tags": [ + "sites" + ], + "description": "Get a site request log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "sites\/get-log.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LOG_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete log", + "operationId": "sitesDeleteLog", + "tags": [ + "sites" + ], + "description": "Delete a site log by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "logs", + "demo": "sites\/delete-log.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "example": "<LOG_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "sitesListVariables", + "tags": [ + "sites" + ], + "description": "Get a list of all variables of a specific site.", + "responses": { + "200": { + "description": "Variables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create variable", + "operationId": "sitesCreateVariable", + "tags": [ + "sites" + ], + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<VARIABLE_ID>" + }, + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>" + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>" + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "sitesGetVariable", + "tags": [ + "sites" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "sitesUpdateVariable", + "tags": [ + "sites" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/update-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Variable key. Letters, digits and underscores only, must not start with a digit. Max length: 255 chars.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "value": { + "description": "Variable value. Max length: 8192 chars.", + "type": "string", + "example": "<VALUE>", + "nullable": true + }, + "secret": { + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "type": "boolean", + "example": false, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", + "tags": [ + "sites" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "variables", + "demo": "sites\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets": { + "get": { + "summary": "List buckets", + "operationId": "storageListBuckets", + "tags": [ + "storage" + ], + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Buckets List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucketList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/list-buckets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", + "tags": [ + "storage" + ], + "description": "Create a new storage bucket.", + "responses": { + "201": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/create-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<BUCKET_ID>" + }, + "name": { + "description": "Bucket name", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "fileSecurity": { + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "maximumFileSize": { + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "type": "integer", + "default": {}, + "example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "compression": { + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "type": "string", + "default": "none", + "example": "none", + "title": "Compression", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "gzip" + ], + "title": "gzip" + }, + { + "type": "string", + "enum": [ + "zstd" + ], + "title": "zstd" + } + ] + }, + "encryption": { + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "antivirus": { + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "transformations": { + "description": "Are image transformations enabled?", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "bucketId", + "name" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}": { + "get": { + "summary": "Get bucket", + "operationId": "storageGetBucket", + "tags": [ + "storage" + ], + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/get-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", + "tags": [ + "storage" + ], + "description": "Update a storage bucket by its unique ID.", + "responses": { + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/update-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Bucket name", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "fileSecurity": { + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "maximumFileSize": { + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "type": "integer", + "default": {}, + "example": 1, + "format": "int32", + "nullable": true + }, + "allowedFileExtensions": { + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "compression": { + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "type": "string", + "default": "none", + "example": "none", + "title": "Compression", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "gzip" + ], + "title": "gzip" + }, + { + "type": "string", + "enum": [ + "zstd" + ], + "title": "zstd" + } + ], + "nullable": true + }, + "encryption": { + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false, + "nullable": true + }, + "antivirus": { + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "type": "boolean", + "default": true, + "example": false + }, + "transformations": { + "description": "Are image transformations enabled?", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete bucket", + "operationId": "storageDeleteBucket", + "tags": [ + "storage" + ], + "description": "Delete a storage bucket by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "buckets", + "demo": "storage\/delete-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "tags": [ + "storage" + ], + "description": "Get a list of all the user files. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Files List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/fileList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/list-files.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, folder, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "fileId": { + "description": "File ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<FILE_ID>" + }, + "file": { + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "type": "string", + "format": "binary" + }, + "permissions": { + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "folder": { + "description": "Virtual folder to place the file in, for example \"photos\/2026\". Nest folders with `\/`. Defaults to the bucket root.", + "type": "string", + "default": "", + "example": "photos\/2026" + } + }, + "required": [ + "fileId", + "file" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "File name.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", + "tags": [ + "storage" + ], + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "tags": [ + "storage" + ], + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "responses": { + "200": { + "description": "Image", + "content": { + "image\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of auto,center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "example": "auto", + "title": "ImageGravity", + "oneOf": [ + { + "type": "string", + "enum": [ + "auto" + ], + "title": "auto" + }, + { + "type": "string", + "enum": [ + "center" + ], + "title": "center" + }, + { + "type": "string", + "enum": [ + "top-left" + ], + "title": "top-left" + }, + { + "type": "string", + "enum": [ + "top" + ], + "title": "top" + }, + { + "type": "string", + "enum": [ + "top-right" + ], + "title": "top-right" + }, + { + "type": "string", + "enum": [ + "left" + ], + "title": "left" + }, + { + "type": "string", + "enum": [ + "right" + ], + "title": "right" + }, + { + "type": "string", + "enum": [ + "bottom-left" + ], + "title": "bottom-left" + }, + { + "type": "string", + "enum": [ + "bottom" + ], + "title": "bottom" + }, + { + "type": "string", + "enum": [ + "bottom-right" + ], + "title": "bottom-right" + } + ], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": -360, + "default": 0 + }, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "example": "FFFFFF", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "example": "jpg", + "title": "ImageFormat", + "oneOf": [ + { + "type": "string", + "enum": [ + "jpg" + ], + "title": "jpg" + }, + { + "type": "string", + "enum": [ + "jpeg" + ], + "title": "jpeg" + }, + { + "type": "string", + "enum": [ + "png" + ], + "title": "png" + }, + { + "type": "string", + "enum": [ + "webp" + ], + "title": "webp" + }, + { + "type": "string", + "enum": [ + "heic" + ], + "title": "heic" + }, + { + "type": "string", + "enum": [ + "avif" + ], + "title": "avif" + }, + { + "type": "string", + "enum": [ + "gif" + ], + "title": "gif" + } + ] + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "responses": { + "200": { + "description": "File", + "content": { + "*\/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [], + "ImpersonateUserId": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + }, + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [], + "ImpersonateUserId": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "example": "<TOKEN>", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb": { + "get": { + "summary": "List databases", + "operationId": "tablesDBList", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "tablesDBCreate", + "tags": [ + "tablesDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/tablesdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "tablesDBListSpecifications", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", + "tags": [ + "tablesDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "tags": [ + "tablesDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", + "tags": [ + "tablesDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "tablesdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "name": "Walter O'Brien" + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createRow": { + "summary": "Stage a row creation", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "tableId": "<TABLE_ID>", + "rowId": "<ROW_ID>", + "data": { + "username": "walter.obrien" + } + } + ] + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "tablesDBGet", + "tags": [ + "tablesDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", + "tags": [ + "tablesDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", + "tags": [ + "tablesDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "tablesDBCreateFailover", + "tags": [ + "tablesDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "tablesdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/migrations": { + "get": { + "summary": "List migrations", + "operationId": "tablesDBListMigrations", + "tags": [ + "tablesDB" + ], + "description": "List the dedicated migrations for a TablesDB database. A database has at most one in-flight migration.", + "responses": { + "200": { + "description": "Database Migrations List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigrationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/list-migrations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create migration", + "operationId": "tablesDBCreateMigration", + "tags": [ + "tablesDB" + ], + "description": "Start migrating a serverless TablesDB database onto a dedicated MySQL compute. Data is copied to the target while the source stays live, with a brief read-only window during cutover.", + "responses": { + "201": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/create-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "specification": { + "description": "Dedicated compute specification to provision as the migration target (e.g. s-2vcpu-4gb). The migration always targets a dedicated compute, so `serverless` is not accepted.", + "type": "string", + "example": "s-1vcpu-1gb" + }, + "autoCutover": { + "description": "Whether to cut over automatically once the copy is verified. When disabled the migration parks at ready_to_cutover and holds there until the cutover is performed manually.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "specification" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "tablesDBGetMigration", + "tags": [ + "tablesDB" + ], + "description": "Get a single dedicated migration for a TablesDB database by its ID.", + "responses": { + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/get-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete migration", + "operationId": "tablesDBDeleteMigration", + "tags": [ + "tablesDB" + ], + "description": "Abort an in-flight TablesDB dedicated migration. Only allowed before cutover; once the migration has cut over it cannot be aborted.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/delete-migration.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/migrations\/{migrationId}\/cutovers": { + "post": { + "summary": "Cutover migration", + "operationId": "tablesDBCreateCutover", + "tags": [ + "tablesDB" + ], + "description": "Cut a verified TablesDB migration over to its dedicated compute. Only applies to a migration created with `autoCutover` disabled, which waits at `ready_to_cutover` until this is called. The routing flip happens shortly after this returns, with a brief read-only window. One call buys one attempt: a cutover that fails a check returns the migration to `verifying` and parks it again, so call this once more to retry.", + "responses": { + "200": { + "description": "Database Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseMigration" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "migrations", + "demo": "tablesdb\/create-cutover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "migrations.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MIGRATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "tablesDBListOperations", + "tags": [ + "tablesDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "tablesdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "tablesDBGetReplicas", + "tags": [ + "tablesDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "tablesdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "tablesDBGetStatus", + "tags": [ + "tablesDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tablesdb", + "demo": "tablesdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables": { + "get": { + "summary": "List tables", + "operationId": "tablesDBListTables", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Tables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/tableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/list-tables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name, enabled, rowSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create table", + "operationId": "tablesDBCreateTable", + "tags": [ + "tablesDB" + ], + "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/create-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "tableId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TABLE_ID>" + }, + "name": { + "description": "Table name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rowSecurity": { + "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "columns": { + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, varchar, text, mediumtext, longtext, integer, bigint, double, boolean, datetime, point, linestring, polygon, email, url, ip, enum), size (integer, required for string and varchar types), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "type": "array", + "default": [], + "items": { + "type": "object" + } + }, + "indexes": { + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "type": "array", + "default": [], + "items": { + "type": "object" + } + } + }, + "required": [ + "tableId", + "name" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { + "get": { + "summary": "Get table", + "operationId": "tablesDBGetTable", + "tags": [ + "tablesDB" + ], + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "responses": { + "200": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/get-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", + "tags": [ + "tablesDB" + ], + "description": "Update a table by its unique ID.", + "responses": { + "200": { + "description": "Table", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/table" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/update-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Table name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rowSecurity": { + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "purge": { + "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "type": "boolean", + "default": false, + "example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", + "tags": [ + "tablesDB" + ], + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tables", + "demo": "tablesdb\/delete-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { + "get": { + "summary": "List columns", + "operationId": "tablesDBListColumns", + "tags": [ + "tablesDB" + ], + "description": "List columns in the table.", + "responses": { + "200": { + "description": "Columns List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/list-columns.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, size, required, array, status, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint": { + "post": { + "summary": "Create bigint column", + "operationId": "tablesDBCreateBigIntColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a bigint column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBigint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-big-int-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { + "patch": { + "summary": "Update bigint column", + "operationId": "tablesDBUpdateBigIntColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBigint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-big-int-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 1000000, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a boolean column.\n", + "responses": { + "202": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-boolean-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-boolean-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "boolean", + "example": false, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a date time column according to the ISO 8601 standard.", + "responses": { + "202": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-datetime-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update datetime column", + "operationId": "tablesDBUpdateDatetimeColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-datetime-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "post": { + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an email column.\n", + "responses": { + "202": { + "description": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-email-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-email-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "responses": { + "202": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-enum-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "elements": { + "description": "Array of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-enum-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "description": "Updated list of enum values.", + "type": "array", + "example": [ + "active", + "inactive" + ], + "items": { + "type": "string" + } + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "active", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "post": { + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnFloat" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-float-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "patch": { + "summary": "Update float column", + "operationId": "tablesDBUpdateFloatColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnFloat" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-float-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when required.", + "type": "number", + "example": 10.5, + "format": "float", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-integer-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-integer-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "min": { + "description": "Minimum value", + "type": "integer", + "example": 0, + "format": "int64", + "nullable": true + }, + "max": { + "description": "Maximum value", + "type": "integer", + "example": 100, + "format": "int64", + "nullable": true + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "integer", + "example": 10, + "format": "int64", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "post": { + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", + "tags": [ + "tablesDB" + ], + "description": "Create IP address column.\n", + "responses": { + "202": { + "description": "ColumnIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIp" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-ip-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIp" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-ip-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value. Cannot be set when column is required.", + "type": "string", + "example": "192.0.2.0", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { + "post": { + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric line column.", + "responses": { + "202": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-line-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when column is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-line-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when column is required.", + "type": "array", + "example": [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a longtext column.\n", + "responses": { + "202": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-longtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-longtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { + "post": { + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a mediumtext column.\n", + "responses": { + "202": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-mediumtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-mediumtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { + "post": { + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric point column.", + "responses": { + "202": { + "description": "ColumnPoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPoint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-point-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPoint", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPoint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-point-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "type": "array", + "example": [ + 1, + 2 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a geometric polygon column.", + "responses": { + "202": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-polygon-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when column is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-polygon-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when column is required.", + "type": "array", + "example": [ + [ + [ + 1, + 2 + ], + [ + 3, + 4 + ], + [ + 5, + 6 + ], + [ + 1, + 2 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", + "tags": [ + "tablesDB" + ], + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "responses": { + "202": { + "description": "ColumnRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnRelationship" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-relationship-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedTableId": { + "description": "Related Table ID.", + "type": "string", + "example": "<RELATED_TABLE_ID>" + }, + "type": { + "description": "Relationship type. Possible values are: oneToOne, oneToMany, manyToOne, manyToMany.", + "type": "string", + "example": "oneToOne", + "title": "RelationshipType", + "oneOf": [ + { + "type": "string", + "enum": [ + "oneToOne" + ], + "title": "oneToOne" + }, + { + "type": "string", + "enum": [ + "manyToOne" + ], + "title": "manyToOne" + }, + { + "type": "string", + "enum": [ + "manyToMany" + ], + "title": "manyToMany" + }, + { + "type": "string", + "enum": [ + "oneToMany" + ], + "title": "oneToMany" + } + ] + }, + "twoWay": { + "description": "Is Two Way?", + "type": "boolean", + "default": false, + "example": false + }, + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>", + "nullable": true + }, + "twoWayKey": { + "description": "Two Way Column Key.", + "type": "string", + "example": "<TWO_WAY_KEY>", + "nullable": true + }, + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "default": "restrict", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ] + } + }, + "required": [ + "relatedTableId", + "type" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship\/{key}": { + "patch": { + "summary": "Update relationship column", + "operationId": "tablesDBUpdateRelationshipColumn", + "tags": [ + "tablesDB" + ], + "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "responses": { + "200": { + "description": "ColumnRelationship", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnRelationship" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-relationship-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "description": "Delete constraint. Possible values are: cascade, restrict, setNull.", + "type": "string", + "example": "cascade", + "title": "RelationMutate", + "oneOf": [ + { + "type": "string", + "enum": [ + "cascade" + ], + "title": "cascade" + }, + { + "type": "string", + "enum": [ + "restrict" + ], + "title": "restrict" + }, + { + "type": "string", + "enum": [ + "setNull" + ], + "title": "setNull" + } + ], + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { + "post": { + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a string column.\n", + "responses": { + "202": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-string-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Column size for text columns, in number of characters.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { + "patch": { + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-string-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the string column.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + "post": { + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a text column.\n", + "responses": { + "202": { + "description": "ColumnText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnText" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-text-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { + "patch": { + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnText" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-text-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { + "post": { + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a URL column.\n", + "responses": { + "202": { + "description": "ColumnURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnUrl" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-url-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { + "patch": { + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", + "tags": [ + "tablesDB" + ], + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnURL", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnUrl" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-url-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "https:\/\/example.com", + "format": "url", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { + "post": { + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a varchar column.\n", + "responses": { + "202": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/create-varchar-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Column Key.", + "type": "string", + "example": "<KEY>" + }, + "size": { + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "array": { + "description": "Is column an array?", + "type": "boolean", + "default": false, + "example": false + }, + "encrypt": { + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "type": "boolean", + "default": false, + "example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { + "patch": { + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/update-varchar-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "description": "Is column required?", + "type": "boolean", + "example": false + }, + "default": { + "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "string", + "example": "Hello World", + "nullable": true + }, + "size": { + "description": "Maximum size of the varchar column.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "newKey": { + "description": "New Column Key.", + "type": "string", + "example": "<NEW_KEY>", + "nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "get": { + "summary": "Get column", + "operationId": "tablesDBGetColumn", + "tags": [ + "tablesDB" + ], + "description": "Get column by ID.", + "responses": { + "200": { + "description": "ColumnBoolean, or ColumnBigInt, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnPoint, or ColumnLine, or ColumnPolygon, or ColumnVarchar, or ColumnText, or ColumnMediumtext, or ColumnLongtext, or ColumnString", + "content": { + "application\/json": { + "schema": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/get-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", + "tags": [ + "tablesDB" + ], + "description": "Deletes a column.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "columns", + "demo": "tablesdb\/delete-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", + "tags": [ + "tablesDB" + ], + "description": "List indexes on the table.", + "responses": { + "200": { + "description": "Column Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "tablesDBCreateIndex", + "tags": [ + "tablesDB" + ], + "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "indexes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "key", + "title": "TablesDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "fulltext" + ], + "title": "fulltext" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + }, + { + "type": "string", + "enum": [ + "spatial" + ], + "title": "spatial" + } + ] + }, + "columns": { + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", + "type": "array", + "example": [ + "username" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "columns" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", + "tags": [ + "tablesDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndex" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", + "tags": [ + "tablesDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "tablesdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "indexes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/list-rows.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, table, schema version (columns and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; row writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", + "tags": [ + "tablesDB" + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create row", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + }, + { + "name": "createRows", + "namespace": "tablesDB", + "platforms": [ + "console", + "server" + ], + "summary": "Create rows", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-rows.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rowId": { + "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<ROW_ID>" + }, + "data": { + "description": "Row data as JSON object.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "rows": { + "description": "Array of rows data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rowId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", + "tags": [ + "tablesDB" + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/upsert-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertRows", + "namespace": "tablesDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "demo": "tablesdb\/upsert-rows.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rows": { + "description": "Array of row data as JSON objects. May contain partial rows.", + "type": "array", + "example": [ + { + "$id": "example1", + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + }, + "required": [ + "rows" + ] + } + } + } + } + }, + "patch": { + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", + "tags": [ + "tablesDB" + ], + "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/update-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only column and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update explicitly selected rows", + "value": { + "data": { + "username": "walter.obrien" + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", + "tags": [ + "tablesDB" + ], + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/delete-rows.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<ROW_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "tags": [ + "tablesDB" + ], + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/get-row.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", + "tags": [ + "tablesDB" + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update row data", + "value": { + "data": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 30, + "isAdmin": false + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", + "tags": [ + "tablesDB" + ], + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "type": "object", + "default": {}, + "example": { + "username": "walter.obrien", + "email": "walter.obrien@example.com", + "fullName": "Walter O'Brien", + "age": 33, + "isAdmin": false + } + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + }, + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + }, + "examples": { + "update": { + "summary": "Update row data", + "value": { + "data": { + "username": "walter.obrien" + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", + "tags": [ + "tablesDB" + ], + "description": "Delete a row by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Decrement a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "min": { + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "type": "number", + "example": 0, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { + "patch": { + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rows", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "client", + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string", + "example": "<COLUMN>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "description": "Value to increment the column by. The value must be a number.", + "type": "number", + "default": 1, + "example": 1, + "format": "float" + }, + "max": { + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "type": "number", + "example": 100, + "format": "float", + "nullable": true + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "tags": [ + "teams" + ], + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "responses": { + "200": { + "description": "Teams List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/teamList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, total, billingPlan", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", + "tags": [ + "teams" + ], + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "responses": { + "201": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TEAM_ID>" + }, + "name": { + "description": "Team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "roles": { + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "default": [ + "owner" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "teamId", + "name" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", + "tags": [ + "teams" + ], + "description": "Get a team by its ID. All team members have read access for this resource.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", + "tags": [ + "teams" + ], + "description": "Update the team's name by its unique ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "New team name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/installations": { + "get": { + "summary": "List Installations", + "operationId": "teamsListInstallations", + "tags": [ + "teams" + ], + "description": "List app installations on a team. Any team member can read installations.", + "responses": { + "200": { + "description": "App installations list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/list-installations.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create Installation", + "operationId": "teamsCreateInstallation", + "tags": [ + "teams" + ], + "description": "Install an app on a team. When authenticated as a user, only team members with the owner role can install apps. Requests using an API key or in admin mode can install apps on any team. The installation is granted the scopes the app currently requests.", + "responses": { + "201": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/create-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "description": "Application unique ID.", + "type": "string", + "example": "<APP_ID>" + }, + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. The Appwrite Console stores authorized project IDs here.", + "type": "string", + "default": "", + "example": "<AUTHORIZATION_DETAILS>" + } + }, + "required": [ + "appId" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/installations\/{installationId}": { + "get": { + "summary": "Get Installation", + "operationId": "teamsGetInstallation", + "tags": [ + "teams" + ], + "description": "Get an app installation on a team by its unique ID. Any team member can read installations.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/get-installation.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update Installation", + "operationId": "teamsUpdateInstallation", + "tags": [ + "teams" + ], + "description": "Update an app installation on a team. Only team members with the owner role can update installations. The installation's granted scopes are refreshed to the scopes the app currently requests; previously issued installation access tokens are revoked.", + "responses": { + "200": { + "description": "AppInstallation", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/appInstallation" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/update-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "authorizationDetails": { + "description": "Authorization details granted to the installation as a JSON array of objects, each with a `type` and app-defined fields. Omit to keep the current value.", + "type": "string", + "example": "<AUTHORIZATION_DETAILS>", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete Installation", + "operationId": "teamsDeleteInstallation", + "tags": [ + "teams" + ], + "description": "Uninstall an app from a team by its installation ID. Only team members with the owner role can remove installations. Previously issued installation access tokens are revoked.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "teams\/delete-installation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "installationId", + "description": "Installation unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", + "tags": [ + "teams" + ], + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", + "tags": [ + "teams" + ], + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "responses": { + "201": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "Email of the new team member.", + "type": "string", + "default": "", + "example": "email@example.com", + "format": "email" + }, + "userId": { + "description": "ID of the user to be added to a team.", + "type": "string", + "default": "", + "example": "<USER_ID>" + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "default": "", + "example": "+12065550100", + "format": "phone" + }, + "roles": { + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + }, + "url": { + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "type": "string", + "default": "", + "example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "description": "Name of the new team member. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "tags": [ + "teams" + ], + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", + "tags": [ + "teams" + ], + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "roles": { + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "type": "array", + "example": [ + "editor" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "roles" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", + "tags": [ + "teams" + ], + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", + "tags": [ + "teams" + ], + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID.", + "type": "string", + "example": "<USER_ID>" + }, + "secret": { + "description": "Secret key.", + "type": "string", + "example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "tags": [ + "teams" + ], + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "teams", + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TEAM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "tags": [ + "tokens" + ], + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Resource Tokens List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceTokenList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "tokens\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "tags": [ + "tokens" + ], + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "responses": { + "201": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "files", + "demo": "tokens\/create-file-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<FILE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "description": "Token expiry date", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + } + }, + "\/tokens\/{tokenId}": { + "get": { + "summary": "Get token", + "operationId": "tokensGet", + "tags": [ + "tokens" + ], + "description": "Get a token by its unique ID.", + "responses": { + "200": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "tokens\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update token", + "operationId": "tokensUpdate", + "tags": [ + "tokens" + ], + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", + "responses": { + "200": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "tokens\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token unique ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "expire": { + "description": "File token expiry date", + "type": "string", + "example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete token", + "operationId": "tokensDelete", + "tags": [ + "tokens" + ], + "description": "Delete a token by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "tokens", + "demo": "tokens\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TOKEN_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users": { + "get": { + "summary": "List users", + "operationId": "usersList", + "tags": [ + "users" + ], + "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Users List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/userList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, passwordPwned, labels, impersonator, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user", + "operationId": "usersCreate", + "tags": [ + "users" + ], + "description": "Create a new user.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email", + "nullable": true + }, + "phone": { + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "type": "string", + "example": "+12065550100", + "format": "phone", + "nullable": true + }, + "password": { + "description": "Plain text user password. Must be at least 8 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password", + "nullable": true + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } + } + } + } + } + }, + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-argon-2-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Argon2.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-bcrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Bcrypt.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/identities": { + "get": { + "summary": "List identities", + "operationId": "usersListIdentities", + "tags": [ + "users" + ], + "description": "Get identities for all users.", + "responses": { + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "users\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", + "tags": [ + "users" + ], + "description": "Delete an identity by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "identities", + "demo": "users\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "identityId", + "description": "Identity ID.", + "required": true, + "schema": { + "type": "string", + "example": "<IDENTITY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-md-5-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using MD5.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-ph-pass-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using PHPass.", + "type": "string", + "example": "password", + "format": "password" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-scrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Scrypt.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordSalt": { + "description": "Optional salt used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "description": "Optional CPU cost used to hash password.", + "type": "integer", + "example": 8, + "format": "int32" + }, + "passwordMemory": { + "description": "Optional memory cost used to hash password.", + "type": "integer", + "example": 65536, + "format": "int32" + }, + "passwordParallel": { + "description": "Optional parallelization cost used to hash password.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "passwordLength": { + "description": "Optional hash length used to hash password.", + "type": "integer", + "example": 64, + "format": "int32" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] + } + } + } + } + } + }, + "\/users\/scrypt-modified": { + "post": { + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-scrypt-modified-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using Scrypt Modified.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordSalt": { + "description": "Salt used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "description": "Salt separator used to hash password.", + "type": "string", + "example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "description": "Signer key used to hash password.", + "type": "string", + "example": "<PASSWORD_SIGNER_KEY>" + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" + ] + } + } + } + } + } + }, + "\/users\/sha": { + "post": { + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/create-sha-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<USER_ID>" + }, + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + }, + "password": { + "description": "User password hashed using SHA.", + "type": "string", + "example": "password", + "format": "password" + }, + "passwordVersion": { + "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", + "type": "string", + "example": "sha1", + "title": "PasswordHash", + "oneOf": [ + { + "type": "string", + "enum": [ + "sha1" + ], + "title": "sha1" + }, + { + "type": "string", + "enum": [ + "sha224" + ], + "title": "sha224" + }, + { + "type": "string", + "enum": [ + "sha256" + ], + "title": "sha256" + }, + { + "type": "string", + "enum": [ + "sha384" + ], + "title": "sha384" + }, + { + "type": "string", + "enum": [ + "sha512\/224" + ], + "title": "sha512\/224" + }, + { + "type": "string", + "enum": [ + "sha512\/256" + ], + "title": "sha512\/256" + }, + { + "type": "string", + "enum": [ + "sha512" + ], + "title": "sha512" + }, + { + "type": "string", + "enum": [ + "sha3-224" + ], + "title": "sha3-224" + }, + { + "type": "string", + "enum": [ + "sha3-256" + ], + "title": "sha3-256" + }, + { + "type": "string", + "enum": [ + "sha3-384" + ], + "title": "sha3-384" + }, + { + "type": "string", + "enum": [ + "sha3-512" + ], + "title": "sha3-512" + } + ] + }, + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/{userId}": { + "get": { + "summary": "Get user", + "operationId": "usersGet", + "tags": [ + "users" + ], + "description": "Get a user by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", + "tags": [ + "users" + ], + "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", + "tags": [ + "users" + ], + "description": "Update the user email by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "description": "User email.", + "type": "string", + "example": "email@example.com", + "format": "email" + } + }, + "required": [ + "email" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/impersonator": { + "patch": { + "summary": "Update user impersonator capability", + "operationId": "usersUpdateImpersonator", + "tags": [ + "users" + ], + "description": "Enable or disable whether a user can impersonate other users. When impersonation headers are used, the request runs as the target user for API behavior, while internal audit logs still attribute the action to the original impersonator and store the impersonated target details only in internal audit payload data. Account endpoints are read-only while impersonating: they report the target's account, and anything that would change it is refused, so an impersonator cannot alter the target's credentials or delete their account.\n", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-impersonator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "impersonator": { + "description": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", + "type": "boolean", + "example": false + } + }, + "required": [ + "impersonator" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", + "tags": [ + "users" + ], + "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-jwt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "description": "Session ID. Use the string 'recent()' to use the most recent session, which is also the default.", + "type": "string", + "default": "recent()", + "example": "recent()" + }, + "duration": { + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "type": "integer", + "default": 900, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", + "tags": [ + "users" + ], + "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-labels.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "type": "array", + "example": [ + "subscriber" + ], + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/memberships": { + "get": { + "summary": "List user memberships", + "operationId": "usersListMemberships", + "tags": [ + "users" + ], + "description": "Get the user membership list by its unique ID.", + "responses": { + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "memberships", + "demo": "users\/list-memberships.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", + "tags": [ + "users" + ], + "description": "Enable or disable MFA on a user account.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "users", + "demo": "users\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + } + }, + { + "name": "updateMFA", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mfa": { + "description": "Enable or disable MFA.", + "type": "boolean", + "example": false + } + }, + "required": [ + "mfa" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/mfa\/authenticators\/{type}": { + "delete": { + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", + "tags": [ + "users" + ], + "description": "Delete an authenticator app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "example": "totp", + "title": "AuthenticatorType", + "oneOf": [ + { + "type": "string", + "enum": [ + "totp" + ], + "title": "totp" + } + ] + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/challenges\/{challengeId}": { + "get": { + "summary": "Get MFA challenge", + "operationId": "usersGetMFAChallenge", + "tags": [ + "users" + ], + "description": "Get a custom MFA challenge for a user, including the code to be delivered through your own channel.", + "responses": { + "200": { + "description": "MFA Challenge Secret", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaChallengeSecret" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "mfa", + "demo": "users\/get-mfa-challenge.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "getMFAChallenge", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "challengeId" + ], + "required": [ + "userId", + "challengeId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaChallengeSecret" + } + ], + "description": "", + "demo": "users\/get-mfa-challenge.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "challengeId", + "description": "ID of the challenge.", + "required": true, + "schema": { + "type": "string", + "example": "<CHALLENGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "usersListMfaFactors", + "tags": [ + "users" + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "responses": { + "200": { + "description": "MFAFactors", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaFactors" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/mfa\/recovery-codes": { + "get": { + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", + "tags": [ + "users" + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", + "tags": [ + "users" + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", + "tags": [ + "users" + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "responses": { + "201": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "group": "mfa", + "demo": "users\/create-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "users", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", + "tags": [ + "users" + ], + "description": "Update the user name by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "User name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/passkeys": { + "get": { + "summary": "List user passkeys", + "operationId": "usersListPasskeys", + "tags": [ + "users" + ], + "description": "Get the list of verified passkeys registered by a user.", + "responses": { + "200": { + "description": "Passkeys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "users\/list-passkeys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter and order on the following attributes: $id, $createdAt, $updatedAt, name, accessedAt", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/users\/{userId}\/passkeys\/{passkeyId}": { + "get": { + "summary": "Get user passkey", + "operationId": "usersGetPasskey", + "tags": [ + "users" + ], + "description": "Get a verified passkey of a user by its unique ID.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "users\/get-passkey.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user passkey", + "operationId": "usersUpdatePasskey", + "tags": [ + "users" + ], + "description": "Rename a passkey of a user.", + "responses": { + "200": { + "description": "Passkey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/passkey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "users\/update-passkey.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Passkey name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete user passkey", + "operationId": "usersDeletePasskey", + "tags": [ + "users" + ], + "description": "Delete a passkey from a user, for example when a device is lost. The passkey can no longer be used to sign in.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "passkeys", + "demo": "users\/delete-passkey.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "passkeyId", + "description": "Passkey ID.", + "required": true, + "schema": { + "type": "string", + "example": "<PASSKEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", + "tags": [ + "users" + ], + "description": "Update the user password by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-password.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "description": "New user password. Must be at least 8 chars.", + "type": "string", + "example": "password", + "format": "password" + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", + "tags": [ + "users" + ], + "description": "Update the user phone by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "description": "User phone number.", + "type": "string", + "example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "number" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/prefs": { + "get": { + "summary": "Get user preferences", + "operationId": "usersGetPrefs", + "tags": [ + "users" + ], + "description": "Get the user preferences by its unique ID.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", + "tags": [ + "users" + ], + "description": "Update the user preferences by its unique ID. The object you pass is stored as is, and replaces any previous value. The maximum allowed prefs size is 64kB and throws error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "description": "Prefs key-value JSON object.", + "type": "object", + "default": {}, + "example": {} + } + }, + "required": [ + "prefs" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/sessions": { + "get": { + "summary": "List user sessions", + "operationId": "usersListSessions", + "tags": [ + "users" + ], + "description": "Get the user sessions list by its unique ID.", + "responses": { + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/list-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.read", + "sessions.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create session", + "operationId": "usersCreateSession", + "tags": [ + "users" + ], + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", + "responses": { + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", + "tags": [ + "users" + ], + "description": "Delete all user's sessions by using the user's unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/delete-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", + "tags": [ + "users" + ], + "description": "Delete a user sessions by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/delete-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "users.write", + "sessions.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "sessionId", + "description": "Session ID.", + "required": true, + "schema": { + "type": "string", + "example": "<SESSION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", + "tags": [ + "users" + ], + "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "type": "boolean", + "example": false + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/targets": { + "get": { + "summary": "List user targets", + "operationId": "usersListTargets", + "tags": [ + "users" + ], + "description": "List the messaging targets that are associated with a user.", + "responses": { + "200": { + "description": "Target list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/targetList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, providerId, identifier, providerType", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user target", + "operationId": "usersCreateTarget", + "tags": [ + "users" + ], + "description": "Create a messaging target.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/create-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "description": "Target ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<TARGET_ID>" + }, + "providerType": { + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "type": "string", + "example": "email", + "title": "MessagingProviderType", + "oneOf": [ + { + "type": "string", + "enum": [ + "email" + ], + "title": "email" + }, + { + "type": "string", + "enum": [ + "sms" + ], + "title": "sms" + }, + { + "type": "string", + "enum": [ + "push" + ], + "title": "push" + } + ] + }, + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "type": "string", + "default": "", + "example": "<NAME>" + } + }, + "required": [ + "targetId", + "providerType", + "identifier" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/targets\/{targetId}": { + "get": { + "summary": "Get user target", + "operationId": "usersGetTarget", + "tags": [ + "users" + ], + "description": "Get a user's push notification target by ID.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/get-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user target", + "operationId": "usersUpdateTarget", + "tags": [ + "users" + ], + "description": "Update a messaging target.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/update-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "description": "The target identifier (token, email, phone etc.)", + "type": "string", + "default": "", + "example": "<IDENTIFIER>" + }, + "providerId": { + "description": "Provider ID. Message will be sent to this target from the specified provider ID. If no provider ID is set the first setup provider will be used.", + "type": "string", + "default": "", + "example": "<PROVIDER_ID>" + }, + "name": { + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "type": "string", + "default": "", + "example": "<NAME>" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete user target", + "operationId": "usersDeleteTarget", + "tags": [ + "users" + ], + "description": "Delete a messaging target.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "targets", + "demo": "users\/delete-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TARGET_ID>" + }, + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", + "tags": [ + "users" + ], + "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", + "responses": { + "201": { + "description": "Token", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/token" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "sessions", + "demo": "users\/create-token.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "length": { + "description": "Token length in characters. The default length is 6 characters", + "type": "integer", + "default": 6, + "example": 4, + "format": "int32" + }, + "expire": { + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "type": "integer", + "default": 900, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", + "tags": [ + "users" + ], + "description": "Update the user email verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-email-verification.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emailVerification": { + "description": "User email verification status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "emailVerification" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", + "tags": [ + "users" + ], + "description": "Update the user phone verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "users", + "demo": "users\/update-phone-verification.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "phoneVerification": { + "description": "User phone verification status.", + "type": "boolean", + "example": false + } + }, + "required": [ + "phoneVerification" + ] + } + } + } + } + } + }, + "\/vectorsdb": { + "get": { + "summary": "List databases", + "operationId": "vectorsDBList", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following columns: name", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create database", + "operationId": "vectorsDBCreate", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DATABASE_ID>" + }, + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is the database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Defaults to `serverless`, which creates the database on the shared pool. Any other value provisions a dedicated database on that specification.", + "type": "string", + "default": "serverless", + "example": "serverless" + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Requires a dedicated `specification`; must be 0 for a serverless database. High availability is enabled when greater than 0.", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Requires a dedicated `specification`; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + } + } + } + }, + "\/vectorsdb\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "vectorsDBListSpecifications", + "tags": [ + "vectorsDB" + ], + "description": "List the dedicated database specifications available on the current plan. Each specification reports its resource limits, its own prices and overage rates, and whether it is enabled for the organization.", + "responses": { + "200": { + "description": "SpecificationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", + "tags": [ + "vectorsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorsDBCreateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "description": "Seconds before the transaction expires.", + "type": "integer", + "default": 300, + "example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/vectorsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorsDBGetTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "vectorsDBUpdateTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "description": "Commit transaction?", + "type": "boolean", + "default": false, + "example": false + }, + "rollback": { + "description": "Rollback transaction?", + "type": "boolean", + "default": false, + "example": false + } + } + }, + "examples": { + "commit": { + "summary": "Commit the transaction", + "value": { + "commit": true + } + }, + "rollback": { + "summary": "Roll back the transaction", + "value": { + "rollback": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "vectorsDBDeleteTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorsDBCreateOperations", + "tags": [ + "vectorsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "transactions", + "demo": "vectorsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "description": "Array of staged operations.", + "type": "array", + "default": [], + "example": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + } + ], + "items": { + "type": "object" + } + } + } + }, + "examples": { + "createDocument": { + "summary": "Stage a document creation in a four-dimensional collection", + "value": { + "operations": [ + { + "action": "create", + "databaseId": "<DATABASE_ID>", + "collectionId": "<COLLECTION_ID>", + "documentId": "<DOCUMENT_ID>", + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + ] + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "vectorsDBGet", + "tags": [ + "vectorsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "vectorsDBUpdate", + "tags": [ + "vectorsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Database name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "enabled": { + "description": "Is database enabled? When set to 'disabled', users cannot access the database but Server SDKs with an API key can still read and write to the database. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + }, + "specification": { + "description": "Database specification. Resizing between dedicated specifications changes cpu, memory, storage and the connection ceiling via a rolling cutover with zero downtime. Moving a `serverless` database onto a dedicated specification is a data migration, not a resize.", + "type": "string", + "example": "serverless", + "nullable": true + }, + "replicas": { + "description": "Number of high availability replicas (0-5) for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification. High availability is enabled when greater than 0.", + "type": "integer", + "example": 0, + "format": "int32", + "nullable": true + }, + "syncMode": { + "description": "Replication sync mode for the dedicated database backing this database. Only valid when the database is backed by a dedicated specification; the mode is only in force once there is at least one replica. Allowed values: async, sync, quorum.", + "type": "string", + "example": "async", + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "vectorsDBDelete", + "tags": [ + "vectorsDB" + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "vectorsDBListCollections", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "VectorsDB Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollectionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, enabled, documentSecurity", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create collection", + "operationId": "vectorsDBCreateCollection", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<COLLECTION_ID>" + }, + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "dimension": { + "description": "Embedding dimension.", + "type": "integer", + "example": 4, + "format": "int32" + }, + "permissions": { + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false + } + }, + "required": [ + "collectionId", + "name", + "dimension" + ] + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "vectorsDBGetCollection", + "tags": [ + "vectorsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "vectorsDBUpdateCollection", + "tags": [ + "vectorsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/update-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Collection name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "dimension": { + "description": "Embedding dimensions.", + "type": "integer", + "example": 4, + "format": "int32" + }, + "permissions": { + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documentSecurity": { + "description": "Enables configuring permissions for individual documents. A user needs one of document or collection level permissions to access a document. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "boolean", + "default": false, + "example": false + }, + "enabled": { + "description": "Is collection enabled? When set to 'disabled', users cannot access the collection but Server SDKs with and API key can still read and write to the collection. No data is lost when this is toggled.", + "type": "boolean", + "default": true, + "example": false, + "nullable": true + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "vectorsDBDeleteCollection", + "tags": [ + "vectorsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "collections", + "demo": "vectorsdb\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "vectorsDBListDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "vectorsDBCreateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorsDB", + "platforms": [ + "console", + "server" + ], + "summary": "Create documents", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "data": { + "description": "Document data as JSON object.", + "type": "object", + "default": {}, + "example": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "key": "value" + } + } + }, + "permissions": { + "description": "An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "documents": { + "description": "Array of documents data as JSON objects.", + "type": "array", + "default": [], + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documentId", + "data" + ] + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "vectorsDBUpsertDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorsDB", + "platforms": [ + "console", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "demo": "vectorsdb\/upsert-documents.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "description": "Array of document data as JSON objects. May contain partial documents.", + "type": "array", + "example": [ + { + "$id": "example1", + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "First document" + } + } + ], + "items": { + "type": "object" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "vectorsDBUpdateDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "updateSelected": { + "summary": "Update metadata on explicitly selected documents", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + }, + "queries": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ] + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "vectorsDBDeleteDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "{\"method\":\"equal\",\"attribute\":\"$id\",\"values\":[\"<DOCUMENT_ID>\"]}" + ], + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/query": { + "post": { + "summary": "Create query", + "operationId": "vectorsDBCreateQuery", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection using a POST request. This behaves identically to the list documents endpoint but accepts the queries in the request body, allowing much larger `queries` arrays than can fit in a URL query string.\n", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/create-query.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 524288 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID to read uncommitted changes within the transaction.", + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "total": { + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "type": "boolean", + "default": true, + "example": false + }, + "ttl": { + "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "type": "integer", + "default": 0, + "example": 0, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorsDBGetDocument", + "tags": [ + "vectorsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorsDBUpsertDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "platforms": [ + "console", + "client", + "server" + ], + "summary": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "vectorsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "upsert": { + "summary": "Create or update a document in a four-dimensional collection", + "value": { + "data": { + "embeddings": [ + 0.12, + -0.55, + 0.88, + 1.02 + ], + "metadata": { + "name": "Example document" + } + } + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "vectorsDBUpdateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "type": "object", + "default": {}, + "example": {} + }, + "permissions": { + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "type": "array", + "example": [ + "read(\"any\")" + ], + "items": { + "type": "string" + } + }, + "transactionId": { + "description": "Transaction ID for staging the operation.", + "type": "string", + "example": "<TRANSACTION_ID>" + } + } + }, + "examples": { + "update": { + "summary": "Update document metadata", + "value": { + "data": { + "metadata": { + "name": "Updated document" + } + } + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "vectorsDBDeleteDocument", + "tags": [ + "vectorsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "documents", + "demo": "vectorsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "vectorsdb.documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "transactionId", + "description": "Transaction ID for staging the operation.", + "required": false, + "schema": { + "type": "string", + "example": "<TRANSACTION_ID>" + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "vectorsDBListIndexes", + "tags": [ + "vectorsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, status, attributes, error", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "vectorsDBCreateIndex", + "tags": [ + "vectorsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "description": "Index Key.", + "type": "string", + "example": "<KEY>" + }, + "type": { + "description": "Index type.", + "type": "string", + "example": "hnsw_euclidean", + "title": "VectorsDBIndexType", + "oneOf": [ + { + "type": "string", + "enum": [ + "hnsw_euclidean" + ], + "title": "hnsw_euclidean" + }, + { + "type": "string", + "enum": [ + "hnsw_dot" + ], + "title": "hnsw_dot" + }, + { + "type": "string", + "enum": [ + "hnsw_cosine" + ], + "title": "hnsw_cosine" + }, + { + "type": "string", + "enum": [ + "object" + ], + "title": "object" + }, + { + "type": "string", + "enum": [ + "key" + ], + "title": "key" + }, + { + "type": "string", + "enum": [ + "unique" + ], + "title": "unique" + } + ] + }, + "attributes": { + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "type": "array", + "example": [ + "embeddings" + ], + "items": { + "type": "string" + } + }, + "orders": { + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "type": "array", + "default": [], + "items": { + "title": "OrderBy", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "asc" + ], + "title": "asc" + }, + { + "type": "string", + "enum": [ + "desc" + ], + "title": "desc" + } + ] + } + }, + "lengths": { + "description": "Length of index. Maximum of 100", + "type": "array", + "default": [], + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "vectorsDBGetIndex", + "tags": [ + "vectorsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorsDBDeleteIndex", + "tags": [ + "vectorsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "indexes", + "demo": "vectorsdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vectorsdb.indexes.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string", + "example": "<KEY>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/failovers": { + "post": { + "summary": "Create failover", + "operationId": "vectorsDBCreateFailover", + "tags": [ + "vectorsDB" + ], + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates. A database left mid-operation also accepts this call as a repair once nothing is driving the operation it is stuck in. Repairing a failover that did not finish, a `failed` database, a stranded upgrade or migrate, or a stranded compute resize additionally requires `targetReplicaId` to name the member to promote, because the default target may be the member that operation already promoted.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "failovers", + "demo": "vectorsdb\/create-failover.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "type": "string", + "example": "<TARGET_REPLICA_ID>", + "nullable": true + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/operations": { + "get": { + "summary": "List operations", + "operationId": "vectorsDBListOperations", + "tags": [ + "vectorsDB" + ], + "description": "List the lifecycle operations recorded for a dedicated database, newest first. Every provision, update, restore, backup and replication action is recorded here with its outcome, including an attempt that was abandoned because another worker took over the database.", + "responses": { + "200": { + "description": "OperationList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "operations", + "demo": "vectorsdb\/list-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "status", + "description": "Filter by operation status.", + "required": false, + "schema": { + "type": "string", + "example": "queued" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of operations to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of operations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/replicas": { + "get": { + "summary": "Get replicas", + "operationId": "vectorsDBGetReplicas", + "tags": [ + "vectorsDB" + ], + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", + "responses": { + "200": { + "description": "Replicas", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseReplicas" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "replicas", + "demo": "vectorsdb\/get-replicas.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/status": { + "get": { + "summary": "Get status", + "operationId": "vectorsDBGetStatus", + "tags": [ + "vectorsDB" + ], + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", + "responses": { + "200": { + "description": "Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "vectorsdb", + "demo": "vectorsdb\/get-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/waf\/rules": { + "get": { + "summary": "List WAF rules.", + "operationId": "wafListRules", + "tags": [ + "waf" + ], + "description": "List WAF rules for the current project.\n", + "responses": { + "200": { + "description": "WAF rule list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/waf\/rules\/bypass": { + "post": { + "summary": "Create a bypass WAF rule.", + "operationId": "wafCreateBypassRule", + "tags": [ + "waf" + ], + "description": "Create a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-bypass-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Leave empty for the API resource type.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Bypass other rules for an IP", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Office network", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"198.51.100.10\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/bypass\/{ruleId}": { + "patch": { + "summary": "Update a bypass WAF rule.", + "operationId": "wafUpdateBypassRule", + "tags": [ + "waf" + ], + "description": "Update a bypass WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleBypass", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleBypass" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-bypass-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/challenge": { + "post": { + "summary": "Create a challenge WAF rule.", + "operationId": "wafCreateChallengeRule", + "tags": [ + "waf" + ], + "description": "Create a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleChallenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-challenge-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "challengeType": { + "description": "Challenge type enforced by the rule.", + "type": "string", + "default": "compute", + "example": "compute" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "difficulty": { + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", + "type": "integer", + "default": 3, + "example": 1, + "format": "int32" + }, + "ttl": { + "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", + "type": "integer", + "default": 1800, + "example": 900, + "format": "int32" + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Challenge requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Challenge sign-ins", + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/challenge\/{ruleId}": { + "patch": { + "summary": "Update a challenge WAF rule.", + "operationId": "wafUpdateChallengeRule", + "tags": [ + "waf" + ], + "description": "Update a challenge WAF rule. Use `difficulty` (1 easiest to 5 hardest) to tune the client-side proof-of-work cost, and `ttl` to control how long, in seconds, a visitor stays cleared after passing the challenge before being challenged again. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleChallenge", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-challenge-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "challengeType": { + "description": "Challenge type enforced by the rule.", + "type": "string", + "example": "compute", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + }, + "difficulty": { + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "ttl": { + "description": "How long, in seconds, a visitor stays cleared after passing the challenge before being challenged again.", + "type": "integer", + "example": 900, + "format": "int32", + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny": { + "post": { + "summary": "Create a deny WAF rule.", + "operationId": "wafCreateDenyRule", + "tags": [ + "waf" + ], + "description": "Create a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "ruleId", + "resourceType", + "name" + ] + }, + "examples": { + "scoped": { + "summary": "Deny requests from an IP range", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Block abusive range", + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"ip\",\"values\":[\"203.0.113.0\/24\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/deny\/{ruleId}": { + "patch": { + "summary": "Update a deny WAF rule.", + "operationId": "wafUpdateDenyRule", + "tags": [ + "waf" + ], + "description": "Update a deny WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleDeny", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleDeny" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-deny-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit": { + "post": { + "summary": "Create a rate-limit WAF rule.", + "operationId": "wafCreateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Create a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "limit": { + "description": "Maximum number of matching requests allowed in the configured interval.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "interval": { + "description": "Interval in seconds used for rate limiting.", + "type": "integer", + "example": 1, + "format": "int32" + }, + "key": { + "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", + "type": "string", + "default": "ip", + "example": "ip" + }, + "strategy": { + "description": "Rate limit strategy. `fixedWindow` counts requests in discrete intervals, `slidingWindow` weights the previous interval for smoother limiting, and `tokenBucket` refills allowance continuously to permit short bursts.", + "type": "string", + "default": "fixedWindow", + "example": "fixedWindow" + }, + "maxBucketSize": { + "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Defaults to `limit` when omitted. Ignored by other strategies.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "limit", + "interval" + ] + }, + "examples": { + "scoped": { + "summary": "Rate limit requests to a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Limit sign-ins", + "limit": 10, + "interval": 60, + "conditions": [ + "{\"method\":\"startsWith\",\"attribute\":\"path\",\"values\":[\"\/v1\/account\/sessions\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/rate-limit\/{ruleId}": { + "patch": { + "summary": "Update a rate-limit WAF rule.", + "operationId": "wafUpdateRateLimitRule", + "tags": [ + "waf" + ], + "description": "Update a rate limit WAF rule. Use `key` to choose the counter: `ip` limits per client IP, while `userId` limits per authenticated user (requests without an authenticated user skip `userId` rules). Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleRateLimit", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-rate-limit-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "limit": { + "description": "Maximum number of matching requests allowed in the configured interval.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "interval": { + "description": "Interval in seconds used for rate limiting.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "key": { + "description": "Rate limit key. Use `ip` to limit per client IP or `userId` to limit per authenticated user. Requests without an authenticated user skip `userId` rules.", + "type": "string", + "example": "ip", + "nullable": true + }, + "maxBucketSize": { + "description": "Maximum number of tokens the bucket can hold for the `tokenBucket` strategy, controlling how large a burst is allowed. The sustained refill rate is `limit \/ interval`. Ignored by other strategies. The strategy itself cannot be changed after creation.", + "type": "integer", + "example": 1, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect": { + "post": { + "summary": "Create a redirect WAF rule.", + "operationId": "wafCreateRedirectRule", + "tags": [ + "waf" + ], + "description": "Create a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "201": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/create-redirect-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ruleId": { + "description": "Rule ID. Choose a custom ID or pass `ID.unique()` to generate a unique one.", + "type": "string", + "example": "<RULE_ID>" + }, + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api" + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>" + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "default": "", + "example": "<DESCRIPTION>" + }, + "location": { + "description": "Location used for redirect responses.", + "type": "string", + "example": "<LOCATION>" + }, + "statusCode": { + "description": "Integer status code used for redirect responses.", + "type": "integer", + "example": 300, + "format": "int32" + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "default": 0, + "example": -100000, + "format": "int32" + }, + "enabled": { + "description": "Set to false to create the rule in a disabled state.", + "type": "boolean", + "default": true, + "example": false + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "default": [], + "items": { + "type": "string" + } + } + }, + "required": [ + "ruleId", + "resourceType", + "name", + "location", + "statusCode" + ] + }, + "examples": { + "scoped": { + "summary": "Redirect requests for a path", + "value": { + "ruleId": "<RULE_ID>", + "resourceType": "api", + "name": "Moved page", + "location": "\/new-page", + "statusCode": 301, + "conditions": [ + "{\"method\":\"equal\",\"attribute\":\"path\",\"values\":[\"\/old-page\"]}" + ] + } + } + } + } + } + } + } + }, + "\/waf\/rules\/redirect\/{ruleId}": { + "patch": { + "summary": "Update a redirect WAF rule.", + "operationId": "wafUpdateRedirectRule", + "tags": [ + "waf" + ], + "description": "Update a redirect WAF rule. Conditions can match request attributes including `ip` (plain IPs or CIDR blocks like `10.0.0.0\/8`), `method`, `path`, `host`, `country`, `continent`, `headers.<name>`, `query.<key>`, `queryKeys`, `userAgent`, `os`, `osVersion`, `browser`, and `browserVersion`. Conditions on `city` and `state` require the premium Geo DB addon.\n", + "responses": { + "200": { + "description": "WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/update-redirect-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "description": "Resource type the rule applies to.", + "type": "string", + "example": "api", + "nullable": true + }, + "resourceId": { + "description": "Resource identifier. Required for functions and sites.", + "type": "string", + "example": "<RESOURCE_ID>", + "nullable": true + }, + "name": { + "description": "Rule name.", + "type": "string", + "example": "<NAME>", + "nullable": true + }, + "description": { + "description": "Optional description for the rule.", + "type": "string", + "example": "<DESCRIPTION>", + "nullable": true + }, + "location": { + "description": "Location used for redirect responses.", + "type": "string", + "example": "<LOCATION>", + "nullable": true + }, + "statusCode": { + "description": "Integer status code used for redirect responses.", + "type": "integer", + "example": 300, + "format": "int32", + "nullable": true + }, + "priority": { + "description": "Evaluation priority. Lower numbers run earlier.", + "type": "integer", + "example": -100000, + "format": "int32", + "nullable": true + }, + "enabled": { + "description": "Set to false to disable the rule.", + "type": "boolean", + "example": false, + "nullable": true + }, + "conditions": { + "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + } + } + } + } + } + } + }, + "\/waf\/rules\/{ruleId}": { + "get": { + "summary": "Get a WAF rule.", + "operationId": "wafGetRule", + "tags": [ + "waf" + ], + "description": "Get a WAF rule by its ID.\n", + "responses": { + "200": { + "description": "WafRuleBypass, or WafRuleDeny, or WafRuleChallenge, or WafRuleRateLimit, or WafRuleRedirect", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/wafRuleBypass" + }, + { + "$ref": "#\/components\/schemas\/wafRuleDeny" + }, + { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + ], + "discriminator": { + "propertyName": "action", + "mapping": { + "bypass": "#\/components\/schemas\/wafRuleBypass", + "deny": "#\/components\/schemas\/wafRuleDeny", + "challenge": "#\/components\/schemas\/wafRuleChallenge", + "rateLimit": "#\/components\/schemas\/wafRuleRateLimit", + "redirect": "#\/components\/schemas\/wafRuleRedirect" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a WAF rule.", + "operationId": "wafDeleteRule", + "tags": [ + "waf" + ], + "description": "Delete a WAF rule.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": "rules", + "demo": "waf\/delete-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "wafRules.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/webhooks": { + "get": { + "summary": "List webhooks", + "operationId": "webhooksList", + "tags": [ + "webhooks" + ], + "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Webhooks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhookList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, url, authUsername, tls, events, enabled, logs, attempts", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create webhook", + "operationId": "webhooksCreate", + "tags": [ + "webhooks" + ], + "description": "Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur.", + "responses": { + "201": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "webhookId": { + "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "url": { + "description": "Webhook URL.", + "type": "string", + "example": "https:\/\/example.com\/webhook" + }, + "name": { + "description": "Webhook name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "example": [ + "users.*.create" + ], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Enable or disable a webhook.", + "type": "boolean", + "default": true, + "example": false + }, + "tls": { + "description": "Certificate verification, false for disabled or true for enabled.", + "type": "boolean", + "default": false, + "example": false + }, + "authUsername": { + "description": "Webhook HTTP user. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "<AUTH_USERNAME>" + }, + "authPassword": { + "description": "Webhook HTTP password. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "password", + "format": "password" + }, + "secret": { + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "type": "string", + "example": "<SECRET>", + "nullable": true + } + }, + "required": [ + "webhookId", + "url", + "name", + "events" + ] + } + } + } + } + } + }, + "\/webhooks\/{webhookId}": { + "get": { + "summary": "Get webhook", + "operationId": "webhooksGet", + "tags": [ + "webhooks" + ], + "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update webhook", + "operationId": "webhooksUpdate", + "tags": [ + "webhooks" + ], + "description": "Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook.", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "description": "Webhook name. Max length: 128 chars.", + "type": "string", + "example": "<NAME>" + }, + "url": { + "description": "Webhook URL.", + "type": "string", + "example": "https:\/\/example.com\/webhook" + }, + "events": { + "description": "Events list. Maximum of 100 events are allowed.", + "type": "array", + "example": [ + "users.*.create" + ], + "items": { + "type": "string" + } + }, + "enabled": { + "description": "Enable or disable a webhook.", + "type": "boolean", + "default": true, + "example": false + }, + "tls": { + "description": "Certificate verification, false for disabled or true for enabled.", + "type": "boolean", + "default": false, + "example": false + }, + "authUsername": { + "description": "Webhook HTTP user. Max length: 256 chars.", + "type": "string", + "default": "", + "example": "<AUTH_USERNAME>" + }, + "authPassword": { + "description": "Webhook HTTP password. Max length: 256 chars. Omit to keep the current password; it is cleared when the URL changes or TLS verification is disabled.", + "type": "string", + "example": "password", + "format": "password", + "nullable": true + } + }, + "required": [ + "name", + "url", + "events" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete webhook", + "operationId": "webhooksDelete", + "tags": [ + "webhooks" + ], + "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + } + }, + "\/webhooks\/{webhookId}\/secret": { + "patch": { + "summary": "Update webhook secret key", + "operationId": "webhooksUpdateSecret", + "tags": [ + "webhooks" + ], + "description": "Update the webhook signing key. This endpoint can be used to regenerate the signing key used to sign and validate payload deliveries for a specific webhook.", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "group": null, + "demo": "webhooks\/update-secret.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "secret": { + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "type": "string", + "example": "<SECRET>", + "nullable": true + } + } + } + } + } + } + } + } + }, + "tags": [ + { + "name": "ping", + "description": "" + }, + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "name": "avatars", + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." + }, + { + "name": "databases", + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" + }, + { + "name": "tablesDB", + "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" + }, + { + "name": "documentsDB", + "description": "" + }, + { + "name": "vectorsDB", + "description": "" + }, + { + "name": "presences", + "description": "The Presences service allows you to track and manage real-time user presence in your project." + }, + { + "name": "functions", + "description": "The Functions Service allows you view, create and manage your Cloud Functions." + }, + { + "name": "messaging", + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." + }, + { + "name": "sites", + "description": "The Sites Service allows you view, create and manage your web applications." + }, + { + "name": "proxy", + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." + }, + { + "name": "teams", + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" + }, + { + "name": "tokens", + "description": "The Tokens service allows you to create and manage resource tokens for secure file access." + }, + { + "name": "users", + "description": "The Users service allows you to manage your project users." + }, + { + "name": "storage", + "description": "The Storage service allows you to manage your project files." + }, + { + "name": "webhooks", + "description": "The Webhooks service allows you to manage your project webhooks." + }, + { + "name": "organization", + "description": "The Organization service allows you to manage organization-level projects." + }, + { + "name": "project", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "advisor", + "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." + }, + { + "name": "mysql", + "description": "" + }, + { + "name": "postgresql", + "description": "" + }, + { + "name": "mongo", + "description": "" + }, + { + "name": "apps", + "description": "The Apps service allows you to manage OAuth2 applications, their keys, secrets, scopes, and installations." + }, + { + "name": "oauth2", + "description": "The OAuth2 service allows you to authorize apps and issue standards-based OAuth2 and OpenID Connect tokens." + }, + { + "name": "domains", + "description": "" + }, + { + "name": "backups", + "description": "The Backups service allows you to manage backup policies, archives, and restorations for your project." + }, + { + "name": "activities", + "description": "The Activities service allows you to list and inspect project activity events." + }, + { + "name": "analytics", + "description": "" + }, + { + "name": "waf", + "description": "" + }, + { + "name": "graphql", + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." + }, + { + "name": "embeddings", + "description": "" + }, + { + "name": "projects", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "console", + "description": "The Console service allows you to interact with console relevant information." + }, + { + "name": "migrations", + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." + } + ], + "components": { + "schemas": { + "any": { + "description": "Any", + "type": "object", + "additionalProperties": true, + "example": {} + }, + "rowList": { + "description": "Rows List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rows that matched your query.", + "format": "int32", + "example": 5 + }, + "rows": { + "type": "array", + "description": "List of rows.", + "items": { + "$ref": "#\/components\/schemas\/row" + }, + "example": [] + } + }, + "required": [ + "total", + "rows" + ], + "example": { + "total": 5, + "rows": "" + } + }, + "documentList": { + "description": "Documents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of documents that matched your query.", + "format": "int32", + "example": 5 + }, + "documents": { + "type": "array", + "description": "List of documents.", + "items": { + "$ref": "#\/components\/schemas\/document" + }, + "example": [] + } + }, + "required": [ + "total", + "documents" + ], + "example": { + "total": 5, + "documents": "" + } + }, + "presenceList": { + "description": "Presences List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of presences that matched your query.", + "format": "int32", + "example": 5 + }, + "presences": { + "type": "array", + "description": "List of presences.", + "items": { + "$ref": "#\/components\/schemas\/presence" + }, + "example": [] + } + }, + "required": [ + "total", + "presences" + ], + "example": { + "total": 5, + "presences": "" + } + }, + "tableList": { + "description": "Tables List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tables that matched your query.", + "format": "int32", + "example": 5 + }, + "tables": { + "type": "array", + "description": "List of tables.", + "items": { + "$ref": "#\/components\/schemas\/table" + }, + "example": [] + } + }, + "required": [ + "total", + "tables" + ], + "example": { + "total": 5, + "tables": "" + } + }, + "collectionList": { + "description": "Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "format": "int32", + "example": 5 + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/collection" + }, + "example": [] + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "databaseList": { + "description": "Databases List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "format": "int32", + "example": 5 + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/database" + }, + "example": [] + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, + "indexList": { + "description": "Indexes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of indexes that matched your query.", + "format": "int32", + "example": 5 + }, + "indexes": { + "type": "array", + "description": "List of indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + } + }, + "required": [ + "total", + "indexes" + ], + "example": { + "total": 5, + "indexes": "" + } + }, + "columnIndexList": { + "description": "Column Indexes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of indexes that matched your query.", + "format": "int32", + "example": 5 + }, + "indexes": { + "type": "array", + "description": "List of indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "example": [] + } + }, + "required": [ + "total", + "indexes" + ], + "example": { + "total": 5, + "indexes": "" + } + }, + "userList": { + "description": "Users List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of users that matched your query.", + "format": "int32", + "example": 5 + }, + "users": { + "type": "array", + "description": "List of users.", + "items": { + "$ref": "#\/components\/schemas\/user" + }, + "example": [] + } + }, + "required": [ + "total", + "users" + ], + "example": { + "total": 5, + "users": "" + } + }, + "sessionList": { + "description": "Sessions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sessions that matched your query.", + "format": "int32", + "example": 5 + }, + "sessions": { + "type": "array", + "description": "List of sessions.", + "items": { + "$ref": "#\/components\/schemas\/session" + }, + "example": [] + } + }, + "required": [ + "total", + "sessions" + ], + "example": { + "total": 5, + "sessions": "" + } + }, + "identityList": { + "description": "Identities List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of identities that matched your query.", + "format": "int32", + "example": 5 + }, + "identities": { + "type": "array", + "description": "List of identities.", + "items": { + "$ref": "#\/components\/schemas\/identity" + }, + "example": [] + } + }, + "required": [ + "total", + "identities" + ], + "example": { + "total": 5, + "identities": "" + } + }, + "fileList": { + "description": "Files List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of files that matched your query.", + "format": "int32", + "example": 5 + }, + "files": { + "type": "array", + "description": "List of files.", + "items": { + "$ref": "#\/components\/schemas\/file" + }, + "example": [] + } + }, + "required": [ + "total", + "files" + ], + "example": { + "total": 5, + "files": "" + } + }, + "bucketList": { + "description": "Buckets List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of buckets that matched your query.", + "format": "int32", + "example": 5 + }, + "buckets": { + "type": "array", + "description": "List of buckets.", + "items": { + "$ref": "#\/components\/schemas\/bucket" + }, + "example": [] + } + }, + "required": [ + "total", + "buckets" + ], + "example": { + "total": 5, + "buckets": "" + } + }, + "resourceTokenList": { + "description": "Resource Tokens List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/resourceToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "teamList": { + "description": "Teams List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "format": "int32", + "example": 5 + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/team" + }, + "example": [] + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "membershipList": { + "description": "Memberships List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of memberships that matched your query.", + "format": "int32", + "example": 5 + }, + "memberships": { + "type": "array", + "description": "List of memberships.", + "items": { + "$ref": "#\/components\/schemas\/membership" + }, + "example": [] + } + }, + "required": [ + "total", + "memberships" + ], + "example": { + "total": 5, + "memberships": "" + } + }, + "siteList": { + "description": "Sites List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of sites that matched your query.", + "format": "int32", + "example": 5 + }, + "sites": { + "type": "array", + "description": "List of sites.", + "items": { + "$ref": "#\/components\/schemas\/site" + }, + "example": [] + } + }, + "required": [ + "total", + "sites" + ], + "example": { + "total": 5, + "sites": "" + } + }, + "functionList": { + "description": "Functions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of functions that matched your query.", + "format": "int32", + "example": 5 + }, + "functions": { + "type": "array", + "description": "List of functions.", + "items": { + "$ref": "#\/components\/schemas\/function" + }, + "example": [] + } + }, + "required": [ + "total", + "functions" + ], + "example": { + "total": 5, + "functions": "" + } + }, + "frameworkList": { + "description": "Frameworks List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of frameworks that matched your query.", + "format": "int32", + "example": 5 + }, + "frameworks": { + "type": "array", + "description": "List of frameworks.", + "items": { + "$ref": "#\/components\/schemas\/framework" + }, + "example": [] + } + }, + "required": [ + "total", + "frameworks" + ], + "example": { + "total": 5, + "frameworks": "" + } + }, + "runtimeList": { + "description": "Runtimes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of runtimes that matched your query.", + "format": "int32", + "example": 5 + }, + "runtimes": { + "type": "array", + "description": "List of runtimes.", + "items": { + "$ref": "#\/components\/schemas\/runtime" + }, + "example": [] + } + }, + "required": [ + "total", + "runtimes" + ], + "example": { + "total": 5, + "runtimes": "" + } + }, + "deploymentList": { + "description": "Deployments List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of deployments that matched your query.", + "format": "int32", + "example": 5 + }, + "deployments": { + "type": "array", + "description": "List of deployments.", + "items": { + "$ref": "#\/components\/schemas\/deployment" + }, + "example": [] + } + }, + "required": [ + "total", + "deployments" + ], + "example": { + "total": 5, + "deployments": "" + } + }, + "executionList": { + "description": "Executions List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of executions that matched your query.", + "format": "int32", + "example": 5 + }, + "executions": { + "type": "array", + "description": "List of executions.", + "items": { + "$ref": "#\/components\/schemas\/execution" + }, + "example": [] + } + }, + "required": [ + "total", + "executions" + ], + "example": { + "total": 5, + "executions": "" + } + }, + "projectList": { + "description": "Projects List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "webhookList": { + "description": "Webhooks List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of webhooks that matched your query.", + "format": "int32", + "example": 5 + }, + "webhooks": { + "type": "array", + "description": "List of webhooks.", + "items": { + "$ref": "#\/components\/schemas\/webhook" + }, + "example": [] + } + }, + "required": [ + "total", + "webhooks" + ], + "example": { + "total": 5, + "webhooks": "" + } + }, + "keyList": { + "description": "API Keys List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/key" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + }, + "countryList": { + "description": "Countries List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of countries that matched your query.", + "format": "int32", + "example": 5 + }, + "countries": { + "type": "array", + "description": "List of countries.", + "items": { + "$ref": "#\/components\/schemas\/country" + }, + "example": [] + } + }, + "required": [ + "total", + "countries" + ], + "example": { + "total": 5, + "countries": "" + } + }, + "continentList": { + "description": "Continents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of continents that matched your query.", + "format": "int32", + "example": 5 + }, + "continents": { + "type": "array", + "description": "List of continents.", + "items": { + "$ref": "#\/components\/schemas\/continent" + }, + "example": [] + } + }, + "required": [ + "total", + "continents" + ], + "example": { + "total": 5, + "continents": "" + } + }, + "languageList": { + "description": "Languages List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of languages that matched your query.", + "format": "int32", + "example": 5 + }, + "languages": { + "type": "array", + "description": "List of languages.", + "items": { + "$ref": "#\/components\/schemas\/language" + }, + "example": [] + } + }, + "required": [ + "total", + "languages" + ], + "example": { + "total": 5, + "languages": "" + } + }, + "currencyList": { + "description": "Currencies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of currencies that matched your query.", + "format": "int32", + "example": 5 + }, + "currencies": { + "type": "array", + "description": "List of currencies.", + "items": { + "$ref": "#\/components\/schemas\/currency" + }, + "example": [] + } + }, + "required": [ + "total", + "currencies" + ], + "example": { + "total": 5, + "currencies": "" + } + }, + "phoneList": { + "description": "Phones List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of phones that matched your query.", + "format": "int32", + "example": 5 + }, + "phones": { + "type": "array", + "description": "List of phones.", + "items": { + "$ref": "#\/components\/schemas\/phone" + }, + "example": [] + } + }, + "required": [ + "total", + "phones" + ], + "example": { + "total": 5, + "phones": "" + } + }, + "variableList": { + "description": "Variables List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of variables that matched your query.", + "format": "int32", + "example": 5 + }, + "variables": { + "type": "array", + "description": "List of variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + } + }, + "required": [ + "total", + "variables" + ], + "example": { + "total": 5, + "variables": "" + } + }, + "mockNumberList": { + "description": "Mock Numbers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of mockNumbers that matched your query.", + "format": "int32", + "example": 5 + }, + "mockNumbers": { + "type": "array", + "description": "List of mockNumbers.", + "items": { + "$ref": "#\/components\/schemas\/mockNumber" + }, + "example": [] + } + }, + "required": [ + "total", + "mockNumbers" + ], + "example": { + "total": 5, + "mockNumbers": "" + } + }, + "policyList": { + "description": "Policies List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of policies in the given project.", + "format": "int32", + "example": 10 + }, + "policies": { + "type": "array", + "description": "List of policies.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordStrength" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPwned" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + }, + { + "$ref": "#\/components\/schemas\/policyMfaFactors" + }, + { + "$ref": "#\/components\/schemas\/policyDenyAliasedEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyDisposableEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyFreeEmail" + }, + { + "$ref": "#\/components\/schemas\/policyDenyCorporateEmail" + }, + { + "$ref": "#\/components\/schemas\/policyPasskey" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-strength": "#\/components\/schemas\/policyPasswordStrength", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "password-pwned": "#\/components\/schemas\/policyPasswordPwned", + "session-alert": "#\/components\/schemas\/policySessionAlert", + "session-duration": "#\/components\/schemas\/policySessionDuration", + "session-invalidation": "#\/components\/schemas\/policySessionInvalidation", + "session-limit": "#\/components\/schemas\/policySessionLimit", + "user-limit": "#\/components\/schemas\/policyUserLimit", + "membership-privacy": "#\/components\/schemas\/policyMembershipPrivacy", + "mfa-factors": "#\/components\/schemas\/policyMfaFactors", + "deny-aliased-email": "#\/components\/schemas\/policyDenyAliasedEmail", + "deny-disposable-email": "#\/components\/schemas\/policyDenyDisposableEmail", + "deny-free-email": "#\/components\/schemas\/policyDenyFreeEmail", + "deny-corporate-email": "#\/components\/schemas\/policyDenyCorporateEmail", + "passkey": "#\/components\/schemas\/policyPasskey" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "policies" + ], + "example": { + "total": 10, + "policies": "" + } + }, + "emailTemplateList": { + "description": "Email Templates List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of templates that matched your query.", + "format": "int32", + "example": 5 + }, + "templates": { + "type": "array", + "description": "List of templates.", + "items": { + "$ref": "#\/components\/schemas\/emailTemplate" + }, + "example": [] + } + }, + "required": [ + "total", + "templates" + ], + "example": { + "total": 5, + "templates": "" + } + }, + "proxyRuleList": { + "description": "Rule List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rules that matched your query.", + "format": "int32", + "example": 5 + }, + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "$ref": "#\/components\/schemas\/proxyRule" + }, + "example": [] + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "localeCodeList": { + "description": "Locale codes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of localeCodes that matched your query.", + "format": "int32", + "example": 5 + }, + "localeCodes": { + "type": "array", + "description": "List of localeCodes.", + "items": { + "$ref": "#\/components\/schemas\/localeCode" + }, + "example": [] + } + }, + "required": [ + "total", + "localeCodes" + ], + "example": { + "total": 5, + "localeCodes": "" + } + }, + "providerList": { + "description": "Provider list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of providers that matched your query.", + "format": "int32", + "example": 5 + }, + "providers": { + "type": "array", + "description": "List of providers.", + "items": { + "$ref": "#\/components\/schemas\/provider" + }, + "example": [] + } + }, + "required": [ + "total", + "providers" + ], + "example": { + "total": 5, + "providers": "" + } + }, + "messageList": { + "description": "Message list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of messages that matched your query.", + "format": "int32", + "example": 5 + }, + "messages": { + "type": "array", + "description": "List of messages.", + "items": { + "$ref": "#\/components\/schemas\/message" + }, + "example": [] + } + }, + "required": [ + "total", + "messages" + ], + "example": { + "total": 5, + "messages": "" + } + }, + "topicList": { + "description": "Topic list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of topics that matched your query.", + "format": "int32", + "example": 5 + }, + "topics": { + "type": "array", + "description": "List of topics.", + "items": { + "$ref": "#\/components\/schemas\/topic" + }, + "example": [] + } + }, + "required": [ + "total", + "topics" + ], + "example": { + "total": 5, + "topics": "" + } + }, + "subscriberList": { + "description": "Subscriber list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of subscribers that matched your query.", + "format": "int32", + "example": 5 + }, + "subscribers": { + "type": "array", + "description": "List of subscribers.", + "items": { + "$ref": "#\/components\/schemas\/subscriber" + }, + "example": [] + } + }, + "required": [ + "total", + "subscribers" + ], + "example": { + "total": 5, + "subscribers": "" + } + }, + "targetList": { + "description": "Target list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of targets that matched your query.", + "format": "int32", + "example": 5 + }, + "targets": { + "type": "array", + "description": "List of targets.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + } + }, + "required": [ + "total", + "targets" + ], + "example": { + "total": 5, + "targets": "" + } + }, + "transactionList": { + "description": "Transaction List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of transactions that matched your query.", + "format": "int32", + "example": 5 + }, + "transactions": { + "type": "array", + "description": "List of transactions.", + "items": { + "$ref": "#\/components\/schemas\/transaction" + }, + "example": [] + } + }, + "required": [ + "total", + "transactions" + ], + "example": { + "total": 5, + "transactions": "" + } + }, + "specificationList": { + "description": "Specifications List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of specifications that matched your query.", + "format": "int32", + "example": 5 + }, + "specifications": { + "type": "array", + "description": "List of specifications.", + "items": { + "$ref": "#\/components\/schemas\/specification" + }, + "example": [] + } + }, + "required": [ + "total", + "specifications" + ], + "example": { + "total": 5, + "specifications": "" + } + }, + "vectorsdbCollectionList": { + "description": "VectorsDB Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "format": "int32", + "example": 5 + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + }, + "example": [] + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "embeddingList": { + "description": "Embedding list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "format": "int32", + "example": 5 + }, + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "$ref": "#\/components\/schemas\/embedding" + }, + "example": [] + } + }, + "required": [ + "total", + "embeddings" + ], + "example": { + "total": 5, + "embeddings": "" + } + }, + "insightList": { + "description": "Insights List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of insights that matched your query.", + "format": "int32", + "example": 5 + }, + "insights": { + "type": "array", + "description": "List of insights.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "example": [] + } + }, + "required": [ + "total", + "insights" + ], + "example": { + "total": 5, + "insights": "" + } + }, + "reportList": { + "description": "Reports List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of reports that matched your query.", + "format": "int32", + "example": 5 + }, + "reports": { + "type": "array", + "description": "List of reports.", + "items": { + "$ref": "#\/components\/schemas\/report" + }, + "example": [] + } + }, + "required": [ + "total", + "reports" + ], + "example": { + "total": 5, + "reports": "" + } + }, + "database": { + "description": "Database", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database name.", + "example": "My Database" + }, + "$createdAt": { + "type": "string", + "description": "Database creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "enabled": { + "type": "boolean", + "description": "If database is enabled. Can be 'enabled' or 'disabled'. When disabled, the database is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "type": { + "description": "Database type.", + "example": "legacy", + "title": "DatabaseType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "legacy" + ], + "title": "legacy" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "documentsdb" + ], + "title": "documentsdb" + }, + { + "type": "string", + "enum": [ + "vectorsdb" + ], + "title": "vectorsdb" + }, + { + "type": "string", + "enum": [ + "mysql" + ], + "title": "mysql" + }, + { + "type": "string", + "enum": [ + "postgresql" + ], + "title": "postgresql" + }, + { + "type": "string", + "enum": [ + "mongodb" + ], + "title": "mongodb" + } + ] + }, + "status": { + "description": "Dedicated database lifecycle status. Null when the database has no valid dedicated backing.", + "readOnly": true, + "example": "ready", + "title": "DatabaseStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "provisioning" + ], + "title": "provisioning" + }, + { + "type": "string", + "enum": [ + "ready" + ], + "title": "ready" + }, + { + "type": "string", + "enum": [ + "inactive" + ], + "title": "inactive" + }, + { + "type": "string", + "enum": [ + "paused" + ], + "title": "paused" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "deleted" + ], + "title": "deleted" + }, + { + "type": "string", + "enum": [ + "restoring" + ], + "title": "restoring" + }, + { + "type": "string", + "enum": [ + "scaling" + ], + "title": "scaling" + }, + { + "type": "string", + "enum": [ + "upgrading" + ], + "title": "upgrading" + }, + { + "type": "string", + "enum": [ + "migrating" + ], + "title": "migrating" + }, + { + "type": "string", + "enum": [ + "pausing" + ], + "title": "pausing" + }, + { + "type": "string", + "enum": [ + "resuming" + ], + "title": "resuming" + }, + { + "type": "string", + "enum": [ + "failing-over" + ], + "title": "failing-over" + } + ], + "nullable": true + }, + "engine": { + "type": "string", + "description": "Underlying engine of the dedicated backing: postgresql, mysql, or mongodb. A managed product (tablesdb, documentsdb, vectorsdb) reports the engine it runs on, so its type and engine can differ. Null when the database has no dedicated backing.", + "readOnly": true, + "example": "postgresql", + "nullable": true + }, + "specification": { + "type": "string", + "description": "Compute specification identifier of the dedicated backing, e.g. s-2vcpu-2gb. Null when the database has no dedicated backing.", + "readOnly": true, + "example": "s-2vcpu-2gb", + "nullable": true + }, + "replicas": { + "type": "integer", + "description": "Number of secondary high availability replicas, excluding the primary. Null when backing configuration is unavailable.", + "format": "int32", + "readOnly": true, + "example": 0, + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message when the dedicated backing failed. Null when the database has no dedicated backing or has not failed.", + "readOnly": true, + "example": "", + "nullable": true + }, + "containerStatus": { + "type": "string", + "description": "Container status of the dedicated backing: active, inactive, or failed (a wake was declined because the backing namespace is gone). Null when the database has no dedicated backing or the runtime has not reported one.", + "readOnly": true, + "example": "active", + "nullable": true + }, + "lifecycleState": { + "type": "string", + "description": "Idle-lifecycle state of the dedicated backing: active, warm, cold, or hibernated. Null when the database has no dedicated backing or the runtime has not reported one.", + "readOnly": true, + "example": "active", + "nullable": true + }, + "policies": { + "type": "array", + "description": "Database backup policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "example": [], + "nullable": true + }, + "archives": { + "type": "array", + "description": "Database backup archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "enabled", + "type" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "My Database", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "enabled": false, + "type": "legacy", + "status": "ready", + "engine": "postgresql", + "specification": "s-2vcpu-2gb", + "replicas": 0, + "error": "", + "containerStatus": "active", + "lifecycleState": "active", + "policies": {}, + "archives": {} + } + }, + "embedding": { + "description": "Embedding", + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "Embedding model used to generate embeddings.", + "example": "nomic-embed-text" + }, + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "format": "int32", + "example": 768 + }, + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "example": [ + 0.01, + 0.02, + 0.03 + ] + }, + "error": { + "type": "string", + "description": "Error message if embedding generation fails. Empty string if no error.", + "example": "Error message" + } + }, + "required": [ + "model", + "dimension", + "embedding", + "error" + ], + "example": { + "model": "nomic-embed-text", + "dimension": 768, + "embedding": [ + 0.01, + 0.02, + 0.03 + ], + "error": "Error message" + } + }, + "collection": { + "description": "Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "format": "int32", + "example": 1500 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 + } + }, + "attributeList": { + "description": "Attributes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of attributes in the given collection.", + "format": "int32", + "example": 5 + }, + "attributes": { + "type": "array", + "description": "List of attributes.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributePolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/attributeString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + } + }, + "required": [ + "total", + "attributes" + ], + "example": { + "total": 5, + "attributes": "" + } + }, + "attributeString": { + "description": "AttributeString", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeInteger": { + "description": "AttributeInteger", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "integer" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "int32", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "integer", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "attributeBigint": { + "description": "AttributeBigInt", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "bigint" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "int64", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "bigint", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "attributeFloat": { + "description": "AttributeFloat", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "percentageCompleted" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "double" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "format": "double", + "example": 1.5, + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "format": "double", + "example": 10.5, + "nullable": true + }, + "default": { + "type": "number", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "format": "double", + "example": 2.5, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "percentageCompleted", + "type": "double", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1.5, + "max": 10.5, + "default": 2.5 + } + }, + "attributeBoolean": { + "description": "AttributeBoolean", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "isEnabled" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "boolean" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "boolean", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "isEnabled", + "type": "boolean", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": false + } + }, + "attributeEmail": { + "description": "AttributeEmail", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "userEmail" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "email" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default@example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "userEmail", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "email", + "default": "default@example.com" + } + }, + "attributeEnum": { + "description": "AttributeEnum", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "status" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "example": [ + "element" + ] + }, + "format": { + "type": "string", + "description": "String format.", + "example": "enum" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "element", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "elements", + "format" + ], + "example": { + "key": "status", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "elements": "element", + "format": "enum", + "default": "element" + } + }, + "attributeIp": { + "description": "AttributeIP", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "ipAddress" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "192.0.2.0", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "ipAddress", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" + } + }, + "attributeUrl": { + "description": "AttributeURL", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "githubUrl" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "url" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "http:\/\/example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "githubUrl", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "url", + "default": "http:\/\/example.com" + } + }, + "attributeDatetime": { + "description": "AttributeDatetime", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "birthDay" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "datetime" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Only null is optional", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "birthDay", + "type": "datetime", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeRelationship": { + "description": "AttributeRelationship", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "relatedCollection": { + "type": "string", + "description": "The ID of the related collection.", + "example": "collection" + }, + "relationType": { + "type": "string", + "description": "The type of the relationship.", + "example": "oneToOne|oneToMany|manyToOne|manyToMany" + }, + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "example": "parent|child" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "relatedCollection", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "relatedCollection": "collection", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" + } + }, + "attributePoint": { + "description": "AttributePoint", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + 0, + 0 + ] + } + }, + "attributeLine": { + "description": "AttributeLine", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ] + } + }, + "attributePolygon": { + "description": "AttributePolygon", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "attributeVarchar": { + "description": "AttributeVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeText": { + "description": "AttributeText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeMediumtext": { + "description": "AttributeMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeLongtext": { + "description": "AttributeLongtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "vectorsdbCollection": { + "description": "VectorsDB Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeObject" + }, + { + "$ref": "#\/components\/schemas\/attributeVector" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "object": "#\/components\/schemas\/attributeObject", + "vector": "#\/components\/schemas\/attributeVector" + } + } + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "format": "int32", + "example": 1500 + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "format": "int32", + "example": 1536 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 + } + }, + "attributeObject": { + "description": "AttributeObject", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeVector": { + "description": "AttributeVector", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "example": "string" + }, + "status": { + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "AttributeStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Vector dimensions.", + "format": "int32", + "example": 1536 + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 1536 + } + }, + "table": { + "description": "Table", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Table ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Table creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Table update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Table permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Table name.", + "example": "My Table" + }, + "enabled": { + "type": "boolean", + "description": "Table enabled. Can be 'enabled' or 'disabled'. When disabled, the table is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "example": false + }, + "rowSecurity": { + "type": "boolean", + "description": "Whether row-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "columns": { + "type": "array", + "description": "Table columns.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + }, + "indexes": { + "type": "array", + "description": "Table indexes.", + "items": { + "$ref": "#\/components\/schemas\/columnIndex" + }, + "example": [] + }, + "bytesMax": { + "type": "integer", + "description": "Maximum row size in bytes. Returns 0 when no limit applies.", + "format": "int32", + "example": 65535 + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used row size in bytes based on defined columns.", + "format": "int32", + "example": 1500 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "rowSecurity", + "columns", + "indexes", + "bytesMax", + "bytesUsed" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Table", + "enabled": false, + "rowSecurity": true, + "columns": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500 + } + }, + "columnList": { + "description": "Columns List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of columns in the given table.", + "format": "int32", + "example": 5 + }, + "columns": { + "type": "array", + "description": "List of columns.", + "items": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "boolean" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnBigint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "bigint" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "integer" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "double" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "email" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "enum" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "url" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "type": "object", + "required": [ + "type", + "format" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + }, + "format": { + "enum": [ + "ip" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "datetime" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "relationship" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPoint" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "point" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLine" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "linestring" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnPolygon" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "polygon" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnVarchar" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "varchar" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnText" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "text" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnMediumtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "mediumtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnLongtext" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "longtext" + ] + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "#\/components\/schemas\/columnString" + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "enum": [ + "string" + ] + } + } + } + ] + } + ] + }, + "example": [] + } + }, + "required": [ + "total", + "columns" + ], + "example": { + "total": 5, + "columns": "" + } + }, + "columnString": { + "description": "ColumnString", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Column size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "columnInteger": { + "description": "ColumnInteger", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "integer" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "int32", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "integer", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "columnBigint": { + "description": "ColumnBigInt", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "count" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "bigint" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "integer", + "description": "Minimum value to enforce for new documents.", + "format": "int64", + "example": 1, + "nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value to enforce for new documents.", + "format": "int64", + "example": 10, + "nullable": true + }, + "default": { + "type": "integer", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "int64", + "example": 10, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "count", + "type": "bigint", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1, + "max": 10, + "default": 10 + } + }, + "columnFloat": { + "description": "ColumnFloat", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "percentageCompleted" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "double" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "min": { + "type": "number", + "description": "Minimum value to enforce for new documents.", + "format": "double", + "example": 1.5, + "nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value to enforce for new documents.", + "format": "double", + "example": 10.5, + "nullable": true + }, + "default": { + "type": "number", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "format": "double", + "example": 2.5, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "percentageCompleted", + "type": "double", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "min": 1.5, + "max": 10.5, + "default": 2.5 + } + }, + "columnBoolean": { + "description": "ColumnBoolean", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "isEnabled" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "boolean" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "isEnabled", + "type": "boolean", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": false + } + }, + "columnEmail": { + "description": "ColumnEmail", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "userEmail" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "email" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default@example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "userEmail", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "email", + "default": "default@example.com" + } + }, + "columnEnum": { + "description": "ColumnEnum", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "status" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "elements": { + "type": "array", + "description": "Array of elements in enumerated type.", + "items": { + "type": "string" + }, + "example": [ + "element" + ] + }, + "format": { + "type": "string", + "description": "String format.", + "example": "enum" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "element", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "elements", + "format" + ], + "example": { + "key": "status", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "elements": "element", + "format": "enum", + "default": "element" + } + }, + "columnIp": { + "description": "ColumnIP", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "ipAddress" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "ip" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "192.0.2.0", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "ipAddress", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "ip", + "default": "192.0.2.0" + } + }, + "columnUrl": { + "description": "ColumnURL", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "githubUrl" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "String format.", + "example": "url" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "https:\/\/example.com", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "githubUrl", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "url", + "default": "https:\/\/example.com" + } + }, + "columnDatetime": { + "description": "ColumnDatetime", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "birthDay" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "datetime" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "format": { + "type": "string", + "description": "ISO 8601 format.", + "example": "datetime" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Only null is optional", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "format" + ], + "example": { + "key": "birthDay", + "type": "datetime", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "default": "2020-10-15T06:38:00.000+00:00" + } + }, + "columnRelationship": { + "description": "ColumnRelationship", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "relatedTable": { + "type": "string", + "description": "The ID of the related table.", + "example": "table" + }, + "relationType": { + "type": "string", + "description": "The type of the relationship.", + "example": "oneToOne|oneToMany|manyToOne|manyToMany" + }, + "twoWay": { + "type": "boolean", + "description": "Is the relationship two-way?", + "example": false + }, + "twoWayKey": { + "type": "string", + "description": "The key of the two-way relationship.", + "example": "string" + }, + "onDelete": { + "type": "string", + "description": "How deleting the parent document will propagate to child documents.", + "example": "restrict|cascade|setNull" + }, + "side": { + "type": "string", + "description": "Whether this is the parent or child side of the relationship", + "example": "parent|child" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "relatedTable", + "relationType", + "twoWay", + "twoWayKey", + "onDelete", + "side" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "relatedTable": "table", + "relationType": "oneToOne|oneToMany|manyToOne|manyToMany", + "twoWay": false, + "twoWayKey": "string", + "onDelete": "restrict|cascade|setNull", + "side": "parent|child" + } + }, + "columnPoint": { + "description": "ColumnPoint", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + 0, + 0 + ], + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + 0, + 0 + ] + } + }, + "columnLine": { + "description": "ColumnLine", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ], + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + 0, + 0 + ], + [ + 1, + 1 + ] + ] + } + }, + "columnPolygon": { + "description": "ColumnPolygon", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "array", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "items": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + } + }, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "columnVarchar": { + "description": "ColumnVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Column size.", + "format": "int32", + "example": 128 + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "columnText": { + "description": "ColumnText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "columnMediumtext": { + "description": "ColumnMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "columnLongtext": { + "description": "ColumnLongtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "example": "fullName" + }, + "type": { + "type": "string", + "description": "Column type.", + "example": "string" + }, + "status": { + "description": "Column status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "title": "ColumnStatus", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an column.", + "example": "string" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "example": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Column creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Column update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this column is encrypted or not.", + "example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "index": { + "description": "Index", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Index ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Index creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Index update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Index key.", + "example": "index1" + }, + "type": { + "type": "string", + "description": "Index type.", + "example": "primary" + }, + "status": { + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "available" + ], + "title": "available" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "deleting" + ], + "title": "deleting" + }, + { + "type": "string", + "enum": [ + "stuck" + ], + "title": "stuck" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "example": "string" + }, + "attributes": { + "type": "array", + "description": "Index attributes.", + "items": { + "type": "string" + }, + "example": [] + }, + "lengths": { + "type": "array", + "description": "Index attributes length.", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [] + }, + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "type", + "status", + "error", + "attributes", + "lengths" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "index1", + "type": "primary", + "status": "available", + "error": "string", + "attributes": [], + "lengths": [], + "orders": [] + } + }, + "columnIndex": { + "description": "Index", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Index ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Index creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Index update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Index Key.", + "example": "index1" + }, + "type": { + "type": "string", + "description": "Index type.", + "example": "primary" + }, + "status": { + "type": "string", + "description": "Index status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "example": "available" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an index.", + "example": "string" + }, + "columns": { + "type": "array", + "description": "Index columns.", + "items": { + "type": "string" + }, + "example": [] + }, + "lengths": { + "type": "array", + "description": "Index columns length.", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [] + }, + "orders": { + "type": "array", + "description": "Index orders.", + "items": { + "type": "string" + }, + "example": [], + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "type", + "status", + "error", + "columns", + "lengths" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "index1", + "type": "primary", + "status": "available", + "error": "string", + "columns": [], + "lengths": [], + "orders": [] + } + }, + "row": { + "description": "Row", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Row ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Row sequence ID.", + "readOnly": true, + "example": "1" + }, + "$tableId": { + "type": "string", + "description": "Table ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Row creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Row update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Row permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$tableId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$tableId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ] + } + }, + "document": { + "description": "Document", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Document ID.", + "example": "5e5ea5c16897e" + }, + "$sequence": { + "type": "string", + "description": "Document sequence ID.", + "readOnly": true, + "example": "1" + }, + "$collectionId": { + "type": "string", + "description": "Collection ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$databaseId": { + "type": "string", + "description": "Database ID.", + "readOnly": true, + "example": "5e5ea5c15117e" + }, + "$createdAt": { + "type": "string", + "description": "Document creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Document update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Document permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + } + }, + "additionalProperties": true, + "required": [ + "$id", + "$sequence", + "$collectionId", + "$databaseId", + "$createdAt", + "$updatedAt", + "$permissions" + ], + "example": { + "$id": "5e5ea5c16897e", + "$sequence": "1", + "$collectionId": "5e5ea5c15117e", + "$databaseId": "5e5ea5c15117e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "username": "john.doe", + "email": "john.doe@example.com", + "fullName": "John Doe", + "age": 30, + "isAdmin": false + } + }, + "presence": { + "description": "Presence", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Presence ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Presence creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Presence update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Presence permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "674af8f3e12a5f9ac0be" + }, + "status": { + "type": "string", + "description": "Presence status.", + "example": "online", + "nullable": true + }, + "source": { + "type": "string", + "description": "Presence source.", + "example": "HTTP" + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "metadata": { + "type": "object", + "additionalProperties": true, + "description": "Presence metadata.", + "example": { + "key": "value" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "userId", + "source" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "userId": "674af8f3e12a5f9ac0be", + "status": "online", + "source": "HTTP", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "metadata": { + "key": "value" + } + } + }, + "user": { + "description": "User", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "password": { + "type": "string", + "description": "Hashed user password.", + "example": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "nullable": true + }, + "hash": { + "type": "string", + "description": "Password hashing algorithm.", + "example": "argon2", + "nullable": true + }, + "hashOptions": { + "type": "object", + "description": "Password hashing algorithm configuration.", + "example": {}, + "allOf": [ + { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/algoArgon2" + }, + { + "$ref": "#\/components\/schemas\/algoScrypt" + }, + { + "$ref": "#\/components\/schemas\/algoScryptModified" + }, + { + "$ref": "#\/components\/schemas\/algoBcrypt" + }, + { + "$ref": "#\/components\/schemas\/algoPhpass" + }, + { + "$ref": "#\/components\/schemas\/algoSha" + }, + { + "$ref": "#\/components\/schemas\/algoMd5" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "argon2": "#\/components\/schemas\/algoArgon2", + "scrypt": "#\/components\/schemas\/algoScrypt", + "scryptMod": "#\/components\/schemas\/algoScryptModified", + "bcrypt": "#\/components\/schemas\/algoBcrypt", + "phpass": "#\/components\/schemas\/algoPhpass", + "sha": "#\/components\/schemas\/algoSha", + "md5": "#\/components\/schemas\/algoMd5" + } + } + } + ], + "nullable": true + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "password": "$argon2id$v=19$m=2048,t=4,p=3$aUZjLnliVWRINmFNTWMudg$5S+x+7uA31xFnrHFT47yFwcJeaP0w92L\/4LdgrVRXxE", + "hash": "argon2", + "hashOptions": {}, + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "algoMd5": { + "description": "AlgoMD5", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "md5" + } + }, + "required": [ + "type" + ], + "example": { + "type": "md5" + } + }, + "algoSha": { + "description": "AlgoSHA", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "sha" + } + }, + "required": [ + "type" + ], + "example": { + "type": "sha" + } + }, + "algoPhpass": { + "description": "AlgoPHPass", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "phpass" + } + }, + "required": [ + "type" + ], + "example": { + "type": "phpass" + } + }, + "algoBcrypt": { + "description": "AlgoBcrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "bcrypt" + } + }, + "required": [ + "type" + ], + "example": { + "type": "bcrypt" + } + }, + "algoScrypt": { + "description": "AlgoScrypt", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scrypt" + }, + "costCpu": { + "type": "integer", + "description": "CPU complexity of computed hash.", + "format": "int32", + "example": 8 + }, + "costMemory": { + "type": "integer", + "description": "Memory complexity of computed hash.", + "format": "int32", + "example": 14 + }, + "costParallel": { + "type": "integer", + "description": "Parallelization of computed hash.", + "format": "int32", + "example": 1 + }, + "length": { + "type": "integer", + "description": "Length used to compute hash.", + "format": "int32", + "example": 64 + } + }, + "required": [ + "type", + "costCpu", + "costMemory", + "costParallel", + "length" + ], + "example": { + "type": "scrypt", + "costCpu": 8, + "costMemory": 14, + "costParallel": 1, + "length": 64 + } + }, + "algoScryptModified": { + "description": "AlgoScryptModified", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "scryptMod" + }, + "salt": { + "type": "string", + "description": "Salt used to compute hash.", + "example": "UxLMreBr6tYyjQ==" + }, + "saltSeparator": { + "type": "string", + "description": "Separator used to compute hash.", + "example": "Bw==" + }, + "signerKey": { + "type": "string", + "description": "Key used to compute hash.", + "example": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "required": [ + "type", + "salt", + "saltSeparator", + "signerKey" + ], + "example": { + "type": "scryptMod", + "salt": "UxLMreBr6tYyjQ==", + "saltSeparator": "Bw==", + "signerKey": "XyEKE9RcTDeLEsL\/RjwPDBv\/RqDl8fb3gpYEOQaPihbxf1ZAtSOHCjuAAa7Q3oHpCYhXSN9tizHgVOwn6krflQ==" + } + }, + "algoArgon2": { + "description": "AlgoArgon2", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Algo type.", + "example": "argon2" + }, + "memoryCost": { + "type": "integer", + "description": "Memory used to compute hash.", + "format": "int32", + "example": 65536 + }, + "timeCost": { + "type": "integer", + "description": "Amount of time consumed to compute hash", + "format": "int32", + "example": 4 + }, + "threads": { + "type": "integer", + "description": "Number of threads used to compute hash.", + "format": "int32", + "example": 3 + } + }, + "required": [ + "type", + "memoryCost", + "timeCost", + "threads" + ], + "example": { + "type": "argon2", + "memoryCost": 65536, + "timeCost": 4, + "threads": 3 + } + }, + "account": { + "description": "Account", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "User creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "User update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "User name.", + "example": "John Doe" + }, + "registration": { + "type": "string", + "description": "User registration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "boolean", + "description": "User status. Pass `true` for enabled and `false` for disabled.", + "example": true + }, + "labels": { + "type": "array", + "description": "Labels for the user.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "passwordUpdate": { + "type": "string", + "description": "Password update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "email": { + "type": "string", + "description": "User email address.", + "example": "john@appwrite.io" + }, + "phone": { + "type": "string", + "description": "User phone number in E.164 format.", + "example": "+4930901820" + }, + "emailVerification": { + "type": "boolean", + "description": "Email verification status.", + "example": true + }, + "emailCanonical": { + "type": "string", + "description": "Canonical form of the user email address.", + "example": "john@appwrite.io", + "nullable": true + }, + "emailIsFree": { + "type": "boolean", + "description": "Whether the user email is from a free email provider.", + "example": true, + "nullable": true + }, + "emailIsDisposable": { + "type": "boolean", + "description": "Whether the user email is from a disposable email provider.", + "example": false, + "nullable": true + }, + "emailIsCorporate": { + "type": "boolean", + "description": "Whether the user email is from a corporate domain.", + "example": true, + "nullable": true + }, + "emailIsCanonical": { + "type": "boolean", + "description": "Whether the user email is in its canonical form.", + "example": true, + "nullable": true + }, + "passwordPwned": { + "type": "boolean", + "description": "Whether the password was found in a known data breach the last time it was checked. Null when the password has never been checked.", + "example": false, + "nullable": true + }, + "phoneVerification": { + "type": "boolean", + "description": "Phone verification status.", + "example": true + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status.", + "example": true + }, + "prefs": { + "type": "object", + "description": "User preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "targets": { + "type": "array", + "description": "A user-owned message receiver. A single user may have multiple e.g. emails, phones, and a browser. Each target is registered with a single provider.", + "items": { + "$ref": "#\/components\/schemas\/target" + }, + "example": [] + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users.", + "example": false, + "nullable": true + }, + "impersonatorUserId": { + "type": "string", + "description": "ID of the original actor performing the impersonation. Present only when the current request is impersonating another user. Internal audit logs attribute the action to this user, while the impersonated target is recorded only in internal audit payload data.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "registration", + "status", + "labels", + "passwordUpdate", + "email", + "phone", + "emailVerification", + "phoneVerification", + "mfa", + "prefs", + "targets", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "John Doe", + "registration": "2020-10-15T06:38:00.000+00:00", + "status": true, + "labels": [ + "vip" + ], + "passwordUpdate": "2020-10-15T06:38:00.000+00:00", + "email": "john@appwrite.io", + "phone": "+4930901820", + "emailVerification": true, + "emailCanonical": "john@appwrite.io", + "emailIsFree": true, + "emailIsDisposable": false, + "emailIsCorporate": true, + "emailIsCanonical": true, + "passwordPwned": false, + "phoneVerification": true, + "mfa": true, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "targets": [], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "impersonator": false, + "impersonatorUserId": "5e5ea5c16897e" + } + }, + "preferences": { + "description": "Preferences", + "type": "object", + "additionalProperties": true, + "example": { + "language": "en", + "timezone": "UTC", + "darkTheme": true + } + }, + "session": { + "description": "Session", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Session ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Session creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Session update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "expire": { + "type": "string", + "description": "Session expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "provider": { + "type": "string", + "description": "Session Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "Session Provider User ID.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Session Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Session Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "ip": { + "type": "string", + "description": "IP in use when the session was created.", + "example": "127.0.0.1" + }, + "osCode": { + "type": "string", + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "example": "Mac" + }, + "osName": { + "type": "string", + "description": "Operating system name.", + "example": "Mac" + }, + "osVersion": { + "type": "string", + "description": "Operating system version.", + "example": "Mac" + }, + "clientType": { + "type": "string", + "description": "Client type.", + "example": "browser" + }, + "clientCode": { + "type": "string", + "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", + "example": "CM" + }, + "clientName": { + "type": "string", + "description": "Client name.", + "example": "Chrome Mobile iOS" + }, + "clientVersion": { + "type": "string", + "description": "Client version.", + "example": "84.0" + }, + "clientEngine": { + "type": "string", + "description": "Client engine name.", + "example": "WebKit" + }, + "clientEngineVersion": { + "type": "string", + "description": "Client engine name.", + "example": "605.1.15" + }, + "deviceName": { + "type": "string", + "description": "Device name.", + "example": "smartphone" + }, + "deviceBrand": { + "type": "string", + "description": "Device brand name.", + "example": "Google" + }, + "deviceModel": { + "type": "string", + "description": "Device model name.", + "example": "Nexus 5" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "current": { + "type": "boolean", + "description": "Returns true if this the current user session.", + "example": true + }, + "factors": { + "type": "array", + "description": "Returns a list of active session factors.", + "items": { + "type": "string" + }, + "example": [ + "email" + ] + }, + "secret": { + "type": "string", + "description": "Secret used to authenticate the user. Only included if the request was made with an API key", + "example": "5e5bb8c16897e" + }, + "mfaUpdatedAt": { + "type": "string", + "description": "Most recent date in ISO 8601 format when the session successfully passed MFA challenge.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "expire", + "provider", + "providerUid", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "ip", + "osCode", + "osName", + "osVersion", + "clientType", + "clientCode", + "clientName", + "clientVersion", + "clientEngine", + "clientEngineVersion", + "deviceName", + "deviceBrand", + "deviceModel", + "countryCode", + "countryName", + "current", + "factors", + "secret", + "mfaUpdatedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "provider": "email", + "providerUid": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "ip": "127.0.0.1", + "osCode": "Mac", + "osName": "Mac", + "osVersion": "Mac", + "clientType": "browser", + "clientCode": "CM", + "clientName": "Chrome Mobile iOS", + "clientVersion": "84.0", + "clientEngine": "WebKit", + "clientEngineVersion": "605.1.15", + "deviceName": "smartphone", + "deviceBrand": "Google", + "deviceModel": "Nexus 5", + "countryCode": "US", + "countryName": "United States", + "current": true, + "factors": [ + "email" + ], + "secret": "5e5bb8c16897e", + "mfaUpdatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "identity": { + "description": "Identity", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Identity ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Identity creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Identity update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5bb8c16897e" + }, + "provider": { + "type": "string", + "description": "Identity Provider.", + "example": "email" + }, + "providerUid": { + "type": "string", + "description": "ID of the User in the Identity Provider.", + "example": "5e5bb8c16897e" + }, + "providerEmail": { + "type": "string", + "description": "Email of the User in the Identity Provider.", + "example": "user@example.com" + }, + "providerAccessToken": { + "type": "string", + "description": "Identity Provider Access Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerAccessTokenExpiry": { + "type": "string", + "description": "The date of when the access token expires in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerRefreshToken": { + "type": "string", + "description": "Identity Provider Refresh Token.", + "example": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3" + }, + "providerIdToken": { + "type": "string", + "description": "Identity Provider ID token (JWT) from the most recent native sign-in. Empty for identities created through the browser OAuth2 flow.", + "example": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "provider", + "providerUid", + "providerEmail", + "providerAccessToken", + "providerAccessTokenExpiry", + "providerRefreshToken", + "providerIdToken" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5bb8c16897e", + "provider": "email", + "providerUid": "5e5bb8c16897e", + "providerEmail": "user@example.com", + "providerAccessToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerAccessTokenExpiry": "2020-10-15T06:38:00.000+00:00", + "providerRefreshToken": "MTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", + "providerIdToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjBhYzNmMWQwNWExYjhlN2YifQ.eyJzdWIiOiIxMTAxNjk0ODQ0NzQzODYyNzYzMzQifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "token": { + "description": "Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "jwt": { + "description": "JWT", + "type": "object", + "properties": { + "jwt": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "required": [ + "jwt" + ], + "example": { + "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + } + }, + "locale": { + "description": "Locale", + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "User IP address.", + "example": "127.0.0.1" + }, + "countryCode": { + "type": "string", + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format", + "example": "US" + }, + "country": { + "type": "string", + "description": "Country name. This field support localization.", + "example": "United States" + }, + "continentCode": { + "type": "string", + "description": "Continent code. A two character continent code \"AF\" for Africa, \"AN\" for Antarctica, \"AS\" for Asia, \"EU\" for Europe, \"NA\" for North America, \"OC\" for Oceania, and \"SA\" for South America.", + "example": "NA" + }, + "continent": { + "type": "string", + "description": "Continent name. This field support localization.", + "example": "North America" + }, + "eu": { + "type": "boolean", + "description": "True if country is part of the European Union.", + "example": false + }, + "currency": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format", + "example": "USD" + }, + "city": { + "type": "string", + "description": "City", + "example": "Kathmandu", + "nullable": true + }, + "timeZone": { + "type": "string", + "description": "Name of timezone", + "example": "Asia\/Kathmandu", + "nullable": true + }, + "postalCode": { + "type": "string", + "description": "Postal code", + "example": "44600", + "nullable": true + }, + "latitude": { + "type": "number", + "description": "Latitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "longitude": { + "type": "number", + "description": "Longitude", + "format": "double", + "example": 82.345, + "nullable": true + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN) of the IP", + "example": "15169", + "nullable": true + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN", + "example": "GOOGLE", + "nullable": true + }, + "isp": { + "type": "string", + "description": "Internet service provider of the IP", + "example": "Google", + "nullable": true + }, + "connectionType": { + "type": "string", + "description": "Connection type of the IP (e.g. cable, cellular, corporate)", + "example": "cable", + "nullable": true + }, + "connectionUsageType": { + "type": "string", + "description": "User type classification of the IP (e.g. residential, business, hosting)", + "example": "residential", + "nullable": true + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP", + "example": "Google LLC", + "nullable": true + } + }, + "required": [ + "ip", + "countryCode", + "country", + "continentCode", + "continent", + "eu", + "currency" + ], + "example": { + "ip": "127.0.0.1", + "countryCode": "US", + "country": "United States", + "continentCode": "NA", + "continent": "North America", + "eu": false, + "currency": "USD", + "city": "Kathmandu", + "timeZone": "Asia\/Kathmandu", + "postalCode": "44600", + "latitude": "82.345", + "longitude": "82.345", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "isp": "Google", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC" + } + }, + "localeCode": { + "description": "LocaleCode", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes)", + "example": "en-us" + }, + "name": { + "type": "string", + "description": "Locale name", + "example": "US" + } + }, + "required": [ + "code", + "name" + ], + "example": { + "code": "en-us", + "name": "US" + } + }, + "file": { + "description": "File", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "File ID.", + "example": "5e5ea5c16897e" + }, + "bucketId": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "File creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "File update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "File permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "name": { + "type": "string", + "description": "File name.", + "example": "Pink.png" + }, + "folder": { + "type": "string", + "description": "Virtual folder containing the file, with a trailing slash. Empty for the bucket root.", + "example": "photos\/2026\/" + }, + "key": { + "type": "string", + "description": "Full virtual path of the file: the folder followed by the file name.", + "example": "photos\/2026\/Pink.png" + }, + "signature": { + "type": "string", + "description": "File MD5 signature.", + "example": "5d529fd02b544198ae075bd57c1762bb" + }, + "mimeType": { + "type": "string", + "description": "File mime type.", + "example": "image\/png" + }, + "sizeOriginal": { + "type": "integer", + "description": "File original size in bytes.", + "format": "int32", + "example": 17890 + }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "format": "int32", + "example": 12345 + }, + "chunksTotal": { + "type": "integer", + "description": "Total number of chunks available", + "format": "int32", + "example": 17890 + }, + "chunksUploaded": { + "type": "integer", + "description": "Total number of chunks uploaded", + "format": "int32", + "example": 17890 + }, + "encryption": { + "type": "boolean", + "description": "Whether file contents are encrypted at rest.", + "example": true + }, + "compression": { + "type": "string", + "description": "Compression algorithm used for the file. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + } + }, + "required": [ + "$id", + "bucketId", + "$createdAt", + "$updatedAt", + "$permissions", + "name", + "folder", + "key", + "signature", + "mimeType", + "sizeOriginal", + "sizeActual", + "chunksTotal", + "chunksUploaded", + "encryption", + "compression" + ], + "example": { + "$id": "5e5ea5c16897e", + "bucketId": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "name": "Pink.png", + "folder": "photos\/2026\/", + "key": "photos\/2026\/Pink.png", + "signature": "5d529fd02b544198ae075bd57c1762bb", + "mimeType": "image\/png", + "sizeOriginal": 17890, + "sizeActual": 12345, + "chunksTotal": 17890, + "chunksUploaded": 17890, + "encryption": true, + "compression": "gzip" + } + }, + "bucket": { + "description": "Bucket", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Bucket ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Bucket creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Bucket update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Bucket permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "example": [ + "read(\"any\")" + ] + }, + "fileSecurity": { + "type": "boolean", + "description": "Whether file-level security is enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "example": true + }, + "name": { + "type": "string", + "description": "Bucket name.", + "example": "Documents" + }, + "enabled": { + "type": "boolean", + "description": "Bucket enabled.", + "example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size supported.", + "format": "int32", + "example": 100 + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions.", + "items": { + "type": "string" + }, + "example": [ + "jpg", + "png" + ] + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Will be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd).", + "example": "gzip" + }, + "encryption": { + "type": "boolean", + "description": "Bucket is encrypted.", + "example": false + }, + "antivirus": { + "type": "boolean", + "description": "Virus scanning is enabled.", + "example": false + }, + "transformations": { + "type": "boolean", + "description": "Image transformations are enabled.", + "example": false + }, + "totalSize": { + "type": "integer", + "description": "Total size of this bucket in bytes.", + "format": "int32", + "example": 128 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "fileSecurity", + "name", + "enabled", + "maximumFileSize", + "allowedFileExtensions", + "compression", + "encryption", + "antivirus", + "transformations", + "totalSize" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "fileSecurity": true, + "name": "Documents", + "enabled": false, + "maximumFileSize": 100, + "allowedFileExtensions": [ + "jpg", + "png" + ], + "compression": "gzip", + "encryption": false, + "antivirus": false, + "transformations": false, + "totalSize": 128 + } + }, + "resourceToken": { + "description": "ResourceToken", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "5e5ea5c168bb8:5e5ea5c168bb8" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "files" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "secret": { + "type": "string", + "description": "JWT encoded string.", + "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "resourceId", + "resourceType", + "expire", + "secret", + "accessedAt" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceId": "5e5ea5c168bb8:5e5ea5c168bb8", + "resourceType": "files", + "expire": "2020-10-15T06:38:00.000+00:00", + "secret": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", + "accessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "team": { + "description": "Team", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + } + } + }, + "membership": { + "description": "Membership", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Membership ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Membership creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Membership update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User name. Hide this attribute by toggling membership privacy in the Console.", + "example": "John Doe" + }, + "userEmail": { + "type": "string", + "description": "User email address. Hide this attribute by toggling membership privacy in the Console.", + "example": "john@appwrite.io" + }, + "userPhone": { + "type": "string", + "description": "User phone number. Hide this attribute by toggling membership privacy in the Console.", + "example": "+1 555 555 5555" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "teamName": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "invited": { + "type": "string", + "description": "Date, the user has been invited to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "joined": { + "type": "string", + "description": "Date, the user has accepted the invitation to join the team in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "confirm": { + "type": "boolean", + "description": "User confirmation status, true if the user has joined the team or false otherwise.", + "example": false + }, + "mfa": { + "type": "boolean", + "description": "Multi factor authentication status, true if the user has MFA enabled or false otherwise. Hide this attribute by toggling membership privacy in the Console.", + "example": false + }, + "userAccessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. Show this attribute by toggling membership privacy in the Console.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "roles": { + "type": "array", + "description": "User list of roles", + "items": { + "type": "string" + }, + "example": [ + "owner" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "userName", + "userEmail", + "userPhone", + "teamId", + "teamName", + "invited", + "joined", + "confirm", + "mfa", + "userAccessedAt", + "roles" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "userName": "John Doe", + "userEmail": "john@appwrite.io", + "userPhone": "+1 555 555 5555", + "teamId": "5e5ea5c16897e", + "teamName": "VIP", + "invited": "2020-10-15T06:38:00.000+00:00", + "joined": "2020-10-15T06:38:00.000+00:00", + "confirm": false, + "mfa": false, + "userAccessedAt": "2020-10-15T06:38:00.000+00:00", + "roles": [ + "owner" + ] + } + }, + "site": { + "description": "Site", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Site ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Site creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Site update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Site name.", + "example": "My Site" + }, + "enabled": { + "type": "boolean", + "description": "Site enabled.", + "example": false + }, + "live": { + "type": "boolean", + "description": "Is the site deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the site to update it with the latest configuration.", + "example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "example": false + }, + "framework": { + "type": "string", + "description": "Site framework.", + "example": "react" + }, + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "deploymentId": { + "type": "string", + "description": "Site's active deployment ID.", + "example": "5e5ea5c16897e" + }, + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "deploymentScreenshotLight": { + "type": "string", + "description": "Screenshot of active deployment with light theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "deploymentScreenshotDark": { + "type": "string", + "description": "Screenshot of active deployment with dark theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentId": { + "type": "string", + "description": "Site's latest deployment ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentStatus": { + "type": "string", + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "example": "ready" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "vars": { + "type": "array", + "description": "Site variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + }, + "timeout": { + "type": "integer", + "description": "Site request timeout in seconds.", + "format": "int32", + "example": 300 + }, + "installCommand": { + "type": "string", + "description": "The install command used to install the site dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "The build command used to build the site.", + "example": "npm run build" + }, + "startCommand": { + "type": "string", + "description": "Custom command to use when starting site runtime.", + "example": "node custom-server.mjs" + }, + "outputDirectory": { + "type": "string", + "description": "The directory where the site build output is located.", + "example": "build" + }, + "installationId": { + "type": "string", + "description": "Site VCS (Version Control System) installation id.", + "example": "6m40at4ejk5h2u9s1hboo" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "appwrite" + }, + "providerBranch": { + "type": "string", + "description": "VCS (Version Control System) branch name", + "example": "main" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site in VCS (Version Control System) repository", + "example": "sites\/helloWorld" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", + "example": false + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { + "type": "string", + "description": "Machine specification for deployment builds.", + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "type": "string", + "description": "Machine specification for SSR executions.", + "example": "s-1vcpu-512mb" + }, + "buildRuntime": { + "type": "string", + "description": "Site build runtime.", + "example": "node-22" + }, + "adapter": { + "type": "string", + "description": "Site framework adapter.", + "example": "static" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "example": "index.html" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "enabled", + "live", + "logging", + "framework", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "deploymentScreenshotLight", + "deploymentScreenshotDark", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "timeout", + "installCommand", + "buildCommand", + "startCommand", + "outputDirectory", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification", + "buildRuntime", + "adapter", + "fallbackFile" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Site", + "enabled": false, + "live": false, + "logging": false, + "framework": "react", + "deploymentRetention": 7, + "deploymentId": "5e5ea5c16897e", + "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "deploymentScreenshotLight": "5e5ea5c16897e", + "deploymentScreenshotDark": "5e5ea5c16897e", + "latestDeploymentId": "5e5ea5c16897e", + "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentStatus": "ready", + "scopes": "users.read", + "vars": [], + "timeout": 300, + "installCommand": "npm install", + "buildCommand": "npm run build", + "startCommand": "node custom-server.mjs", + "outputDirectory": "build", + "installationId": "6m40at4ejk5h2u9s1hboo", + "providerRepositoryId": "appwrite", + "providerBranch": "main", + "providerRootDirectory": "sites\/helloWorld", + "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], + "buildSpecification": "s-1vcpu-512mb", + "runtimeSpecification": "s-1vcpu-512mb", + "buildRuntime": "node-22", + "adapter": "static", + "fallbackFile": "index.html" + } + }, + "function": { + "description": "Function", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Function ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Function creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Function update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "execute": { + "type": "array", + "description": "Execution permissions.", + "items": { + "type": "string" + }, + "example": [ + "users" + ] + }, + "name": { + "type": "string", + "description": "Function name.", + "example": "My Function" + }, + "enabled": { + "type": "boolean", + "description": "Function enabled.", + "example": false + }, + "live": { + "type": "boolean", + "description": "Is the function deployed with the latest configuration? This is set to false if you've changed an environment variables, entrypoint, commands, or other settings that needs redeploy to be applied. When the value is false, redeploy the function to update it with the latest configuration.", + "example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "example": false + }, + "runtime": { + "type": "string", + "description": "Function execution and build runtime.", + "example": "python-3.8" + }, + "deploymentRetention": { + "type": "integer", + "description": "How many days to keep the non-active deployments before they will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "deploymentId": { + "type": "string", + "description": "Function's active deployment ID.", + "example": "5e5ea5c16897e" + }, + "deploymentCreatedAt": { + "type": "string", + "description": "Active deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentId": { + "type": "string", + "description": "Function's latest deployment ID.", + "example": "5e5ea5c16897e" + }, + "latestDeploymentCreatedAt": { + "type": "string", + "description": "Latest deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latestDeploymentStatus": { + "type": "string", + "description": "Status of latest deployment. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", and \"failed\".", + "example": "ready" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "vars": { + "type": "array", + "description": "Function variables.", + "items": { + "$ref": "#\/components\/schemas\/variable" + }, + "example": [] + }, + "events": { + "type": "array", + "description": "Function trigger events.", + "items": { + "type": "string" + }, + "example": [ + "account.create" + ] + }, + "schedule": { + "type": "string", + "description": "Function execution schedule in CRON format.", + "example": "5 4 * * *" + }, + "timeout": { + "type": "integer", + "description": "Function execution timeout in seconds.", + "format": "int32", + "example": 300 + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file used to execute the deployment.", + "example": "index.js" + }, + "commands": { + "type": "string", + "description": "The build command used to build the deployment.", + "example": "npm install" + }, + "version": { + "type": "string", + "description": "Version of Open Runtimes used for the function.", + "example": "v2" + }, + "installationId": { + "type": "string", + "description": "Function VCS (Version Control System) installation id.", + "example": "6m40at4ejk5h2u9s1hboo" + }, + "providerRepositoryId": { + "type": "string", + "description": "VCS (Version Control System) Repository ID", + "example": "appwrite" + }, + "providerBranch": { + "type": "string", + "description": "VCS (Version Control System) branch name", + "example": "main" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function in VCS (Version Control System) repository", + "example": "functions\/helloWorld" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", + "example": false + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "example": [ + "src\/**", + "!docs\/**" + ] + }, + "buildSpecification": { + "type": "string", + "description": "Machine specification for deployment builds.", + "example": "s-1vcpu-512mb" + }, + "runtimeSpecification": { + "type": "string", + "description": "Machine specification for executions.", + "example": "s-1vcpu-512mb" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "execute", + "name", + "enabled", + "live", + "logging", + "runtime", + "deploymentRetention", + "deploymentId", + "deploymentCreatedAt", + "latestDeploymentId", + "latestDeploymentCreatedAt", + "latestDeploymentStatus", + "scopes", + "vars", + "events", + "schedule", + "timeout", + "entrypoint", + "commands", + "version", + "installationId", + "providerRepositoryId", + "providerBranch", + "providerRootDirectory", + "providerSilentMode", + "providerBranches", + "providerPaths", + "buildSpecification", + "runtimeSpecification" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "execute": "users", + "name": "My Function", + "enabled": false, + "live": false, + "logging": false, + "runtime": "python-3.8", + "deploymentRetention": 7, + "deploymentId": "5e5ea5c16897e", + "deploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentId": "5e5ea5c16897e", + "latestDeploymentCreatedAt": "2020-10-15T06:38:00.000+00:00", + "latestDeploymentStatus": "ready", + "scopes": "users.read", + "vars": [], + "events": "account.create", + "schedule": "5 4 * * *", + "timeout": 300, + "entrypoint": "index.js", + "commands": "npm install", + "version": "v2", + "installationId": "6m40at4ejk5h2u9s1hboo", + "providerRepositoryId": "appwrite", + "providerBranch": "main", + "providerRootDirectory": "functions\/helloWorld", + "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], + "buildSpecification": "s-1vcpu-512mb", + "runtimeSpecification": "s-1vcpu-512mb" + } + }, + "runtime": { + "description": "Runtime", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Runtime ID.", + "example": "python-3.8" + }, + "key": { + "type": "string", + "description": "Parent runtime key.", + "example": "python" + }, + "name": { + "type": "string", + "description": "Runtime Name.", + "example": "Python" + }, + "version": { + "type": "string", + "description": "Runtime version.", + "example": "3.8" + }, + "base": { + "type": "string", + "description": "Base Docker image used to build the runtime.", + "example": "python:3.8-alpine" + }, + "image": { + "type": "string", + "description": "Image name of Docker Hub.", + "example": "appwrite\\\/runtime-for-python:3.8" + }, + "logo": { + "type": "string", + "description": "Name of the logo image.", + "example": "python.png" + }, + "supports": { + "type": "array", + "description": "List of supported architectures.", + "items": { + "type": "string" + }, + "example": [ + "amd64" + ] + } + }, + "required": [ + "$id", + "key", + "name", + "version", + "base", + "image", + "logo", + "supports" + ], + "example": { + "$id": "python-3.8", + "key": "python", + "name": "Python", + "version": "3.8", + "base": "python:3.8-alpine", + "image": "appwrite\\\/runtime-for-python:3.8", + "logo": "python.png", + "supports": "amd64" + } + }, + "framework": { + "description": "Framework", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Framework key.", + "example": "sveltekit" + }, + "name": { + "type": "string", + "description": "Framework Name.", + "example": "SvelteKit" + }, + "buildRuntime": { + "type": "string", + "description": "Default runtime version.", + "example": "node-22" + }, + "runtimes": { + "type": "array", + "description": "List of supported runtime versions.", + "items": { + "type": "string" + }, + "example": [ + "static-1", + "node-22" + ] + }, + "adapters": { + "type": "array", + "description": "List of supported adapters.", + "items": { + "$ref": "#\/components\/schemas\/frameworkAdapter" + }, + "example": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] + } + }, + "required": [ + "key", + "name", + "buildRuntime", + "runtimes", + "adapters" + ], + "example": { + "key": "sveltekit", + "name": "SvelteKit", + "buildRuntime": "node-22", + "runtimes": [ + "static-1", + "node-22" + ], + "adapters": [ + { + "key": "static", + "buildRuntime": "node-22", + "buildCommand": "npm run build", + "installCommand": "npm install", + "outputDirectory": ".\/dist" + } + ] + } + }, + "frameworkAdapter": { + "description": "Framework Adapter", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Adapter key.", + "example": "static" + }, + "installCommand": { + "type": "string", + "description": "Default command to download dependencies.", + "example": "npm install" + }, + "buildCommand": { + "type": "string", + "description": "Default command to build site into output directory.", + "example": "npm run build" + }, + "outputDirectory": { + "type": "string", + "description": "Default output directory of build.", + "example": ".\/dist" + }, + "fallbackFile": { + "type": "string", + "description": "Name of fallback file to use instead of 404 page. If null, Appwrite 404 page will be displayed.", + "example": "index.html", + "nullable": true + } + }, + "required": [ + "key", + "installCommand", + "buildCommand", + "outputDirectory" + ], + "example": { + "key": "static", + "installCommand": "npm install", + "buildCommand": "npm run build", + "outputDirectory": ".\/dist", + "fallbackFile": "index.html" + } + }, + "deployment": { + "description": "Deployment", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Deployment ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Deployment creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Deployment update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "type": { + "type": "string", + "description": "Type of deployment.", + "example": "vcs" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "functions" + }, + "entrypoint": { + "type": "string", + "description": "The entrypoint file to use to execute the deployment code.", + "example": "index.js" + }, + "sourceSize": { + "type": "integer", + "description": "The code size in bytes.", + "format": "int32", + "example": 128 + }, + "buildSize": { + "type": "integer", + "description": "The build output size in bytes.", + "format": "int32", + "example": 128 + }, + "totalSize": { + "type": "integer", + "description": "The total size in bytes (source and build output).", + "format": "int32", + "example": 128 + }, + "buildId": { + "type": "string", + "description": "The current build ID.", + "example": "5e5ea5c16897e" + }, + "activate": { + "type": "boolean", + "description": "Whether the deployment should be automatically activated.", + "example": true + }, + "screenshotLight": { + "type": "string", + "description": "Screenshot with light theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "screenshotDark": { + "type": "string", + "description": "Screenshot with dark theme preference file ID.", + "example": "5e5ea5c16897e" + }, + "status": { + "description": "The deployment status. Possible values are \"waiting\", \"processing\", \"building\", \"ready\", \"canceled\" and \"failed\".", + "example": "ready", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "building" + ], + "title": "building" + }, + { + "type": "string", + "enum": [ + "ready" + ], + "title": "ready" + }, + { + "type": "string", + "enum": [ + "canceled" + ], + "title": "canceled" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + }, + "buildLogs": { + "type": "string", + "description": "The build logs.", + "example": "Compiling source files..." + }, + "buildDuration": { + "type": "integer", + "description": "The current build time in seconds.", + "format": "int32", + "example": 128 + }, + "providerRepositoryName": { + "type": "string", + "description": "The name of the vcs provider repository", + "example": "database" + }, + "providerRepositoryOwner": { + "type": "string", + "description": "The name of the vcs provider repository owner", + "example": "utopia" + }, + "providerRepositoryUrl": { + "type": "string", + "description": "The url of the vcs provider repository", + "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function" + }, + "providerCommitHash": { + "type": "string", + "description": "The commit hash of the vcs commit", + "example": "7c3f25d" + }, + "providerCommitAuthorUrl": { + "type": "string", + "description": "The url of vcs commit author", + "example": "https:\/\/github.com\/vermakhushboo" + }, + "providerCommitAuthor": { + "type": "string", + "description": "The name of vcs commit author", + "example": "Khushboo Verma" + }, + "providerCommitMessage": { + "type": "string", + "description": "The commit message", + "example": "Update index.js" + }, + "providerCommitUrl": { + "type": "string", + "description": "The url of the vcs commit", + "example": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb" + }, + "providerBranch": { + "type": "string", + "description": "The branch of the vcs repository", + "example": "0.7.x" + }, + "providerBranchUrl": { + "type": "string", + "description": "The branch of the vcs repository", + "example": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "resourceId", + "resourceType", + "entrypoint", + "sourceSize", + "buildSize", + "totalSize", + "buildId", + "activate", + "screenshotLight", + "screenshotDark", + "status", + "buildLogs", + "buildDuration", + "providerRepositoryName", + "providerRepositoryOwner", + "providerRepositoryUrl", + "providerCommitHash", + "providerCommitAuthorUrl", + "providerCommitAuthor", + "providerCommitMessage", + "providerCommitUrl", + "providerBranch", + "providerBranchUrl" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "type": "vcs", + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "entrypoint": "index.js", + "sourceSize": 128, + "buildSize": 128, + "totalSize": 128, + "buildId": "5e5ea5c16897e", + "activate": true, + "screenshotLight": "5e5ea5c16897e", + "screenshotDark": "5e5ea5c16897e", + "status": "ready", + "buildLogs": "Compiling source files...", + "buildDuration": 128, + "providerRepositoryName": "database", + "providerRepositoryOwner": "utopia", + "providerRepositoryUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function", + "providerCommitHash": "7c3f25d", + "providerCommitAuthorUrl": "https:\/\/github.com\/vermakhushboo", + "providerCommitAuthor": "Khushboo Verma", + "providerCommitMessage": "Update index.js", + "providerCommitUrl": "https:\/\/github.com\/vermakhushboo\/g4-node-function\/commit\/60c0416257a9cbcdd96b2d370c38d8f8d150ccfb", + "providerBranch": "0.7.x", + "providerBranchUrl": "https:\/\/github.com\/vermakhushboo\/appwrite\/tree\/0.7.x" + } + }, + "execution": { + "description": "Execution", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Execution ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Execution creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Execution update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Execution roles.", + "items": { + "type": "string" + }, + "example": [ + "any" + ] + }, + "resourceId": { + "type": "string", + "description": "Function or site ID.", + "example": "5e5ea6g16897e" + }, + "resourceType": { + "description": "Execution resource type.", + "example": "functions", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + } + ] + }, + "deploymentId": { + "type": "string", + "description": "Deployment ID used to create the execution.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "description": "The trigger that caused the resource to execute. Possible values can be: `http`, `schedule`, or `event`.", + "example": "http", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "http" + ], + "title": "http" + }, + { + "type": "string", + "enum": [ + "schedule" + ], + "title": "schedule" + }, + { + "type": "string", + "enum": [ + "event" + ], + "title": "event" + } + ] + }, + "status": { + "description": "The status of the resource execution. Possible values can be: `waiting`, `processing`, `completed`, `failed`, or `scheduled`.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "waiting" + ], + "title": "waiting" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + } + ] + }, + "requestMethod": { + "type": "string", + "description": "HTTP request method type.", + "example": "GET" + }, + "requestPath": { + "type": "string", + "description": "HTTP request path and query.", + "example": "\/articles?id=5" + }, + "requestHeaders": { + "type": "array", + "description": "HTTP request headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "responseStatusCode": { + "type": "integer", + "description": "HTTP response status code.", + "format": "int32", + "example": 200 + }, + "responseBody": { + "type": "string", + "description": "HTTP response body. This will return empty unless execution is created as synchronous.", + "example": "" + }, + "responseHeaders": { + "type": "array", + "description": "HTTP response headers as a key-value object. This will return only whitelisted headers. All headers are returned if execution is created as synchronous.", + "items": { + "$ref": "#\/components\/schemas\/headers" + }, + "example": [ + { + "Content-Type": "application\/json" + } + ] + }, + "logs": { + "type": "string", + "description": "Resource logs. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "errors": { + "type": "string", + "description": "Resource errors. Includes the last 4,000 characters. This will return an empty string unless the response is returned using an API key or as part of a webhook payload.", + "example": "" + }, + "duration": { + "type": "number", + "description": "Total time the resource(function\/site) took to respond, in seconds.", + "format": "double", + "example": 1.23 + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for execution. If left empty, execution will be queued immediately.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "resourceId", + "resourceType", + "deploymentId", + "trigger", + "status", + "requestMethod", + "requestPath", + "requestHeaders", + "responseStatusCode", + "responseBody", + "responseHeaders", + "logs", + "errors", + "duration" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "any" + ], + "resourceId": "5e5ea6g16897e", + "resourceType": "functions", + "deploymentId": "5e5ea5c16897e", + "trigger": "http", + "status": "processing", + "requestMethod": "GET", + "requestPath": "\/articles?id=5", + "requestHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "responseStatusCode": 200, + "responseBody": "", + "responseHeaders": [ + { + "Content-Type": "application\/json" + } + ], + "logs": "", + "errors": "", + "duration": 1.23, + "scheduledAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "project": { + "description": "Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Project creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Project update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Project name.", + "example": "New Project" + }, + "teamId": { + "type": "string", + "description": "Project team ID.", + "example": "1592981250" + }, + "region": { + "type": "string", + "description": "Project region", + "example": "fra" + }, + "smtpEnabled": { + "type": "boolean", + "description": "Status for custom SMTP", + "example": false + }, + "smtpSenderName": { + "type": "string", + "description": "SMTP sender name", + "example": "John Appwrite" + }, + "smtpSenderEmail": { + "type": "string", + "description": "SMTP sender email", + "example": "john@appwrite.io" + }, + "smtpReplyToName": { + "type": "string", + "description": "SMTP reply to name", + "example": "Support Team" + }, + "smtpReplyToEmail": { + "type": "string", + "description": "SMTP reply to email", + "example": "support@appwrite.io" + }, + "smtpHost": { + "type": "string", + "description": "SMTP server host name", + "example": "mail.appwrite.io" + }, + "smtpPort": { + "type": "integer", + "description": "SMTP server port", + "format": "int32", + "example": 25 + }, + "smtpUsername": { + "type": "string", + "description": "SMTP server username", + "example": "emailuser" + }, + "smtpPassword": { + "type": "string", + "description": "SMTP server password. This property is write-only and always returned empty.", + "format": "password", + "example": "smtp-password" + }, + "smtpSecure": { + "type": "string", + "description": "SMTP server secure protocol", + "example": "tls" + }, + "pingCount": { + "type": "integer", + "description": "Number of times the ping was received for this project.", + "format": "int32", + "example": 1 + }, + "pingedAt": { + "type": "string", + "description": "Last ping datetime in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "labels": { + "type": "array", + "description": "Labels for the project.", + "items": { + "type": "string" + }, + "example": [ + "vip" + ] + }, + "status": { + "type": "string", + "description": "Project status", + "example": "active" + }, + "onboarding": { + "type": "object", + "additionalProperties": true, + "description": "Stage progress (completed or skipped) with timestamps and actor types, keyed by stage id.", + "example": {} + }, + "authMethods": { + "type": "array", + "description": "List of auth methods.", + "items": { + "$ref": "#\/components\/schemas\/projectAuthMethod" + }, + "example": [] + }, + "services": { + "type": "array", + "description": "List of services.", + "items": { + "$ref": "#\/components\/schemas\/projectService" + }, + "example": [] + }, + "protocols": { + "type": "array", + "description": "List of protocols.", + "items": { + "$ref": "#\/components\/schemas\/projectProtocol" + }, + "example": [] + }, + "blocks": { + "type": "array", + "description": "Project blocks information", + "items": { + "$ref": "#\/components\/schemas\/block" + }, + "example": [] + }, + "consoleAccessedAt": { + "type": "string", + "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "wafEnabled": { + "type": "boolean", + "description": "Whether WAF enforcement is enabled for the project.", + "example": true, + "nullable": true + }, + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true + }, + "firstAccessedAt": { + "type": "string", + "description": "First time the project received a non-console API request. Empty until the project is used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "mcpAccessedAt": { + "type": "string", + "description": "Last time the project was accessed through the MCP server. Empty if it was never accessed via MCP.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "oAuth2ServerEnabled": { + "type": "boolean", + "description": "OAuth2 server status", + "example": false, + "nullable": true + }, + "oAuth2ServerAuthorizationUrl": { + "type": "string", + "description": "OAuth2 server authorization URL", + "example": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "nullable": true + }, + "oAuth2ServerScopes": { + "type": "array", + "description": "OAuth2 server allowed scopes", + "items": { + "type": "string" + }, + "example": [ + "read", + "write" + ], + "nullable": true + }, + "oAuth2ServerDefaultScopes": { + "type": "array", + "description": "OAuth2 server scopes used when an authorization request omits the scope parameter", + "items": { + "type": "string" + }, + "example": [ + "read" + ], + "nullable": true + }, + "oAuth2ServerInstallationScopes": { + "type": "array", + "description": "Scopes an application may request when installed on a team", + "items": { + "type": "string" + }, + "example": [ + "project:all" + ], + "nullable": true + }, + "oAuth2ServerAuthorizationDetailsTypes": { + "type": "array", + "description": "OAuth2 server accepted RFC 9396 authorization_details types", + "items": { + "type": "string" + }, + "example": [ + "calendar" + ], + "nullable": true + }, + "oAuth2ServerAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for confidential clients", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for confidential clients", + "format": "int32", + "example": 86400, + "nullable": true + }, + "oAuth2ServerPublicAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for public clients (SPAs, mobile, native)", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerPublicRefreshTokenDuration": { + "type": "integer", + "description": "OAuth2 server refresh token duration in seconds for public clients (SPAs, mobile, native)", + "format": "int32", + "example": 2592000, + "nullable": true + }, + "oAuth2ServerInstallationAccessTokenDuration": { + "type": "integer", + "description": "OAuth2 server access token duration in seconds for app installation access tokens", + "format": "int32", + "example": 3600, + "nullable": true + }, + "oAuth2ServerConfidentialPkce": { + "type": "boolean", + "description": "When enabled, PKCE is required for confidential clients (server-side flows using client_secret). PKCE is always required for public clients regardless of this setting.", + "example": false, + "nullable": true + }, + "oAuth2ServerVerificationUrl": { + "type": "string", + "description": "URL to your application page where users enter the device flow user code. Empty when the Device Authorization Grant is not configured.", + "example": "https:\/\/cloud.appwrite.io\/device", + "nullable": true + }, + "oAuth2ServerUserCodeLength": { + "type": "integer", + "description": "Number of characters in the device flow user code, excluding the formatting separator.", + "format": "int32", + "example": 8, + "nullable": true + }, + "oAuth2ServerUserCodeFormat": { + "type": "string", + "description": "Character set for device flow user codes: `numeric`, `alphabetic`, or `alphanumeric`.", + "example": "alphanumeric", + "nullable": true + }, + "oAuth2ServerDeviceCodeDuration": { + "type": "integer", + "description": "Lifetime in seconds of device flow device codes and user codes.", + "format": "int32", + "example": 600, + "nullable": true + }, + "oAuth2ServerDiscoveryUrl": { + "type": "string", + "description": "OAuth2 server discovery URL", + "example": "https:\/\/auth.example.com\/.well-known\/openid-configuration", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "teamId", + "region", + "smtpEnabled", + "smtpSenderName", + "smtpSenderEmail", + "smtpReplyToName", + "smtpReplyToEmail", + "smtpHost", + "smtpPort", + "smtpUsername", + "smtpPassword", + "smtpSecure", + "pingCount", + "pingedAt", + "labels", + "status", + "onboarding", + "authMethods", + "services", + "protocols", + "blocks", + "consoleAccessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "New Project", + "teamId": "1592981250", + "region": "fra", + "smtpEnabled": false, + "smtpSenderName": "John Appwrite", + "smtpSenderEmail": "john@appwrite.io", + "smtpReplyToName": "Support Team", + "smtpReplyToEmail": "support@appwrite.io", + "smtpHost": "mail.appwrite.io", + "smtpPort": 25, + "smtpUsername": "emailuser", + "smtpPassword": "smtp-password", + "smtpSecure": "tls", + "pingCount": 1, + "pingedAt": "2020-10-15T06:38:00.000+00:00", + "labels": [ + "vip" + ], + "status": "active", + "onboarding": {}, + "authMethods": {}, + "services": {}, + "protocols": {}, + "blocks": "", + "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00", + "wafEnabled": true, + "billingLimits": "", + "firstAccessedAt": "2020-10-15T06:38:00.000+00:00", + "mcpAccessedAt": "2020-10-15T06:38:00.000+00:00", + "oAuth2ServerEnabled": false, + "oAuth2ServerAuthorizationUrl": "https:\/\/cloud.appwrite.io\/oauth2\/.well-known\/openid-configuration", + "oAuth2ServerScopes": [ + "read", + "write" + ], + "oAuth2ServerDefaultScopes": [ + "read" + ], + "oAuth2ServerInstallationScopes": [ + "project:all" + ], + "oAuth2ServerAuthorizationDetailsTypes": [ + "calendar" + ], + "oAuth2ServerAccessTokenDuration": 3600, + "oAuth2ServerRefreshTokenDuration": 86400, + "oAuth2ServerPublicAccessTokenDuration": 3600, + "oAuth2ServerPublicRefreshTokenDuration": 2592000, + "oAuth2ServerInstallationAccessTokenDuration": 3600, + "oAuth2ServerConfidentialPkce": false, + "oAuth2ServerVerificationUrl": "https:\/\/cloud.appwrite.io\/device", + "oAuth2ServerUserCodeLength": 8, + "oAuth2ServerUserCodeFormat": "alphanumeric", + "oAuth2ServerDeviceCodeDuration": 600, + "oAuth2ServerDiscoveryUrl": "https:\/\/auth.example.com\/.well-known\/openid-configuration" + } + }, + "projectAuthMethod": { + "description": "ProjectAuthMethod", + "type": "object", + "properties": { + "$id": { + "description": "Auth method ID.", + "example": "email-password", + "title": "ProjectAuthMethodId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "email-password" + ], + "title": "email-password" + }, + { + "type": "string", + "enum": [ + "magic-url" + ], + "title": "magic-url" + }, + { + "type": "string", + "enum": [ + "email-otp" + ], + "title": "email-otp" + }, + { + "type": "string", + "enum": [ + "anonymous" + ], + "title": "anonymous" + }, + { + "type": "string", + "enum": [ + "invites" + ], + "title": "invites" + }, + { + "type": "string", + "enum": [ + "jwt" + ], + "title": "jwt" + }, + { + "type": "string", + "enum": [ + "phone" + ], + "title": "phone" + }, + { + "type": "string", + "enum": [ + "passkey" + ], + "title": "passkey" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Auth method status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "email-password", + "enabled": false + } + }, + "projectService": { + "description": "ProjectService", + "type": "object", + "properties": { + "$id": { + "description": "Service ID.", + "example": "sites", + "title": "ProjectServiceId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "account" + ], + "title": "account" + }, + { + "type": "string", + "enum": [ + "avatars" + ], + "title": "avatars" + }, + { + "type": "string", + "enum": [ + "databases" + ], + "title": "databases" + }, + { + "type": "string", + "enum": [ + "tablesdb" + ], + "title": "tablesdb" + }, + { + "type": "string", + "enum": [ + "locale" + ], + "title": "locale" + }, + { + "type": "string", + "enum": [ + "health" + ], + "title": "health" + }, + { + "type": "string", + "enum": [ + "project" + ], + "title": "project" + }, + { + "type": "string", + "enum": [ + "storage" + ], + "title": "storage" + }, + { + "type": "string", + "enum": [ + "teams" + ], + "title": "teams" + }, + { + "type": "string", + "enum": [ + "users" + ], + "title": "users" + }, + { + "type": "string", + "enum": [ + "vcs" + ], + "title": "vcs" + }, + { + "type": "string", + "enum": [ + "sites" + ], + "title": "sites" + }, + { + "type": "string", + "enum": [ + "functions" + ], + "title": "functions" + }, + { + "type": "string", + "enum": [ + "proxy" + ], + "title": "proxy" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "migrations" + ], + "title": "migrations" + }, + { + "type": "string", + "enum": [ + "messaging" + ], + "title": "messaging" + }, + { + "type": "string", + "enum": [ + "advisor" + ], + "title": "advisor" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Service status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "sites", + "enabled": false + } + }, + "projectProtocol": { + "description": "ProjectProtocol", + "type": "object", + "properties": { + "$id": { + "description": "Protocol ID.", + "example": "graphql", + "title": "ProjectProtocolId", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "rest" + ], + "title": "rest" + }, + { + "type": "string", + "enum": [ + "graphql" + ], + "title": "graphql" + }, + { + "type": "string", + "enum": [ + "websocket" + ], + "title": "websocket" + } + ] + }, + "enabled": { + "type": "boolean", + "description": "Protocol status.", + "example": false + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "graphql", + "enabled": false + } + }, + "webhook": { + "description": "Webhook", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Webhook ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Webhook creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Webhook update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Webhook name.", + "example": "My Webhook" + }, + "url": { + "type": "string", + "description": "Webhook URL endpoint.", + "example": "https:\/\/example.com\/webhook" + }, + "events": { + "type": "array", + "description": "Webhook trigger events.", + "items": { + "type": "string" + }, + "example": [ + "databases.tables.update", + "databases.collections.update" + ] + }, + "tls": { + "type": "boolean", + "description": "Indicates if SSL \/ TLS certificate verification is enabled.", + "example": true + }, + "authUsername": { + "type": "string", + "description": "HTTP basic authentication username.", + "example": "username" + }, + "authPassword": { + "type": "string", + "description": "HTTP basic authentication password. Write-only: always returned empty.", + "format": "password", + "example": "webhook-password" + }, + "secret": { + "type": "string", + "description": "Signature key which can be used to validate incoming webhook payloads. Only returned on creation and secret rotation.", + "example": "ad3d581ca230e2b7059c545e5a" + }, + "enabled": { + "type": "boolean", + "description": "Indicates if this webhook is enabled.", + "example": true + }, + "logs": { + "type": "string", + "description": "Webhook error logs from the most recent failure.", + "example": "Failed to connect to remote server." + }, + "attempts": { + "type": "integer", + "description": "Number of consecutive failed webhook attempts.", + "format": "int32", + "example": 10 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "url", + "events", + "tls", + "authUsername", + "authPassword", + "secret", + "enabled", + "logs", + "attempts" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Webhook", + "url": "https:\/\/example.com\/webhook", + "events": [ + "databases.tables.update", + "databases.collections.update" + ], + "tls": true, + "authUsername": "username", + "authPassword": "webhook-password", + "secret": "ad3d581ca230e2b7059c545e5a", + "enabled": true, + "logs": "Failed to connect to remote server.", + "attempts": 10 + } + }, + "key": { + "description": "Key", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Key update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Key name.", + "example": "My API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "secret": { + "type": "string", + "description": "Secret key.", + "example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "sdks": { + "type": "array", + "description": "List of SDK user agents that used this key.", + "items": { + "type": "string" + }, + "example": [ + "appwrite:flutter" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "scopes": "users.read", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" + } + }, + "ephemeralKey": { + "description": "Ephemeral Key", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Key creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Key update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Key name.", + "example": "My API Key" + }, + "expire": { + "type": "string", + "description": "Key expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "scopes": { + "type": "array", + "description": "Allowed permission scopes.", + "items": { + "type": "string" + }, + "example": [ + "users.read" + ] + }, + "secret": { + "type": "string", + "description": "Secret key.", + "example": "919c2d18fb5d4...a2ae413da83346ad2" + }, + "accessedAt": { + "type": "string", + "description": "Most recent access date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "sdks": { + "type": "array", + "description": "List of SDK user agents that used this key.", + "items": { + "type": "string" + }, + "example": [ + "appwrite:flutter" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "expire", + "scopes", + "secret", + "accessedAt", + "sdks" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My API Key", + "expire": "2020-10-15T06:38:00.000+00:00", + "scopes": "users.read", + "secret": "919c2d18fb5d4...a2ae413da83346ad2", + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "sdks": "appwrite:flutter" + } + }, + "mockNumber": { + "description": "Mock Number", + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "Mock phone number for testing phone authentication. Useful for testing phone authentication without sending an SMS.", + "example": "+1612842323" + }, + "otp": { + "type": "string", + "description": "Mock OTP for the number. ", + "example": "123456" + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "number", + "otp", + "$createdAt", + "$updatedAt" + ], + "example": { + "number": "+1612842323", + "otp": "123456", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oAuth2Github": { + "description": "OAuth2GitHub", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "GitHub OAuth2 client ID. For GitHub Apps, use the \"App ID\" when both an App ID and client ID are available.", + "example": "e4d87900000000540733" + }, + "clientSecret": { + "type": "string", + "description": "GitHub OAuth2 client secret.", + "example": "5e07c00000000000000000000000000000198bcc" + }, + "prompt": { + "type": "array", + "description": "GitHub OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "select_account" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "e4d87900000000540733", + "clientSecret": "5e07c00000000000000000000000000000198bcc", + "prompt": [ + "select_account" + ] + } + }, + "oAuth2Discord": { + "description": "OAuth2Discord", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Discord OAuth2 client ID.", + "example": "950722000000343754" + }, + "clientSecret": { + "type": "string", + "description": "Discord OAuth2 client secret.", + "example": "YmPXnM000000000000000000002zFg5D" + }, + "prompt": { + "type": "array", + "description": "Discord OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "950722000000343754", + "clientSecret": "YmPXnM000000000000000000002zFg5D", + "prompt": [ + "none" + ] + } + }, + "oAuth2Figma": { + "description": "OAuth2Figma", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Figma OAuth2 client ID.", + "example": "byay5H0000000000VtiI40" + }, + "clientSecret": { + "type": "string", + "description": "Figma OAuth2 client secret.", + "example": "yEpOYn0000000000000000004iIsU5" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "byay5H0000000000VtiI40", + "clientSecret": "yEpOYn0000000000000000004iIsU5" + } + }, + "oAuth2Dropbox": { + "description": "OAuth2Dropbox", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "appKey": { + "type": "string", + "description": "Dropbox OAuth2 app key.", + "example": "jl000000000009t" + }, + "appSecret": { + "type": "string", + "description": "Dropbox OAuth2 app secret.", + "example": "g200000000000vw" + } + }, + "required": [ + "$id", + "enabled", + "appKey", + "appSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "appKey": "jl000000000009t", + "appSecret": "g200000000000vw" + } + }, + "oAuth2Dailymotion": { + "description": "OAuth2Dailymotion", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "apiKey": { + "type": "string", + "description": "Dailymotion OAuth2 API key.", + "example": "07a9000000000000067f" + }, + "apiSecret": { + "type": "string", + "description": "Dailymotion OAuth2 API secret.", + "example": "a399a90000000000000000000000000000d90639" + } + }, + "required": [ + "$id", + "enabled", + "apiKey", + "apiSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "apiKey": "07a9000000000000067f", + "apiSecret": "a399a90000000000000000000000000000d90639" + } + }, + "oAuth2Bitbucket": { + "description": "OAuth2Bitbucket", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "key": { + "type": "string", + "description": "Bitbucket OAuth2 key.", + "example": "Knt70000000000ByRc" + }, + "secret": { + "type": "string", + "description": "Bitbucket OAuth2 secret.", + "example": "NMfLZJ00000000000000000000TLQdDx" + } + }, + "required": [ + "$id", + "enabled", + "key", + "secret" + ], + "example": { + "$id": "github", + "enabled": false, + "key": "Knt70000000000ByRc", + "secret": "NMfLZJ00000000000000000000TLQdDx" + } + }, + "oAuth2Bitly": { + "description": "OAuth2Bitly", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Bitly OAuth2 client ID.", + "example": "d95151000000000000000000000000000067af9b" + }, + "clientSecret": { + "type": "string", + "description": "Bitly OAuth2 client secret.", + "example": "a13e250000000000000000000000000000d73095" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "d95151000000000000000000000000000067af9b", + "clientSecret": "a13e250000000000000000000000000000d73095" + } + }, + "oAuth2Box": { + "description": "OAuth2Box", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Box OAuth2 client ID.", + "example": "deglcs00000000000000000000x2og6y" + }, + "clientSecret": { + "type": "string", + "description": "Box OAuth2 client secret.", + "example": "OKM1f100000000000000000000eshEif" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "deglcs00000000000000000000x2og6y", + "clientSecret": "OKM1f100000000000000000000eshEif" + } + }, + "oAuth2Autodesk": { + "description": "OAuth2Autodesk", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Autodesk OAuth2 client ID.", + "example": "5zw90v00000000000000000000kVYXN7" + }, + "clientSecret": { + "type": "string", + "description": "Autodesk OAuth2 client secret.", + "example": "7I000000000000MW" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "5zw90v00000000000000000000kVYXN7", + "clientSecret": "7I000000000000MW" + } + }, + "oAuth2Google": { + "description": "OAuth2Google", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Google OAuth2 client ID.", + "example": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com" + }, + "clientSecret": { + "type": "string", + "description": "Google OAuth2 client secret.", + "example": "GOCSPX-2k8gsR0000000000000000VNahJj" + }, + "prompt": { + "type": "array", + "description": "Google OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "consent" + ] + }, + "nativeEnabled": { + "type": "boolean", + "description": "Native Google sign-in is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", + "example": false + }, + "nativeClientIds": { + "type": "array", + "description": "Additional OAuth2 client IDs accepted as ID token audiences for native sign-in, next to the client ID.", + "items": { + "type": "string" + }, + "example": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "nativeEnabled", + "nativeClientIds" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "clientSecret": "GOCSPX-2k8gsR0000000000000000VNahJj", + "prompt": [ + "consent" + ], + "nativeEnabled": false, + "nativeClientIds": [ + "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com" + ] + } + }, + "oAuth2Zoom": { + "description": "OAuth2Zoom", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Zoom OAuth2 client ID.", + "example": "QMAC00000000000000w0AQ" + }, + "clientSecret": { + "type": "string", + "description": "Zoom OAuth2 client secret.", + "example": "GAWsG4000000000000000000007U01ON" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "QMAC00000000000000w0AQ", + "clientSecret": "GAWsG4000000000000000000007U01ON" + } + }, + "oAuth2Zoho": { + "description": "OAuth2Zoho", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Zoho OAuth2 client ID.", + "example": "1000.83C178000000000000000000RPNX0B" + }, + "clientSecret": { + "type": "string", + "description": "Zoho OAuth2 client secret.", + "example": "fb5cac000000000000000000000000000000a68f6e" + }, + "prompt": { + "type": "array", + "description": "Zoho OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "consent" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "1000.83C178000000000000000000RPNX0B", + "clientSecret": "fb5cac000000000000000000000000000000a68f6e", + "prompt": [ + "consent" + ] + } + }, + "oAuth2Yandex": { + "description": "OAuth2Yandex", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Yandex OAuth2 client ID.", + "example": "6a8a6a0000000000000000000091483c" + }, + "clientSecret": { + "type": "string", + "description": "Yandex OAuth2 client secret.", + "example": "bbf98500000000000000000000c75a63" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a8a6a0000000000000000000091483c", + "clientSecret": "bbf98500000000000000000000c75a63" + } + }, + "oAuth2X": { + "description": "OAuth2X", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "customerKey": { + "type": "string", + "description": "X OAuth2 customer key.", + "example": "slzZV0000000000000NFLaWT" + }, + "secretKey": { + "type": "string", + "description": "X OAuth2 secret key.", + "example": "tkEPkp00000000000000000000000000000000000000FTxbI9" + } + }, + "required": [ + "$id", + "enabled", + "customerKey", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "customerKey": "slzZV0000000000000NFLaWT", + "secretKey": "tkEPkp00000000000000000000000000000000000000FTxbI9" + } + }, + "oAuth2WordPress": { + "description": "OAuth2WordPress", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "WordPress OAuth2 client ID.", + "example": "130005" + }, + "clientSecret": { + "type": "string", + "description": "WordPress OAuth2 client secret.", + "example": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "130005", + "clientSecret": "PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk" + } + }, + "oAuth2Webflow": { + "description": "OAuth2Webflow", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Webflow OAuth2 client ID.", + "example": "8bb20000000000000000000000000000000000000000000000000000000040dd" + }, + "clientSecret": { + "type": "string", + "description": "Webflow OAuth2 client secret.", + "example": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "8bb20000000000000000000000000000000000000000000000000000000040dd", + "clientSecret": "59bf00000000000000000000000000000000000000000000000000000000fe59" + } + }, + "oAuth2Twitch": { + "description": "OAuth2Twitch", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Twitch OAuth2 client ID.", + "example": "vvi0in000000000000000000ikmt9p" + }, + "clientSecret": { + "type": "string", + "description": "Twitch OAuth2 client secret.", + "example": "pmapue000000000000000000zylw3v" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "vvi0in000000000000000000ikmt9p", + "clientSecret": "pmapue000000000000000000zylw3v" + } + }, + "oAuth2Stripe": { + "description": "OAuth2Stripe", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Stripe OAuth2 client ID.", + "example": "ca_UKibXX0000000000000000000006byvR" + }, + "apiSecretKey": { + "type": "string", + "description": "Stripe OAuth2 API secret key.", + "example": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "apiSecretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "ca_UKibXX0000000000000000000006byvR", + "apiSecretKey": "sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp" + } + }, + "oAuth2Spotify": { + "description": "OAuth2Spotify", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Spotify OAuth2 client ID.", + "example": "6ec271000000000000000000009beace" + }, + "clientSecret": { + "type": "string", + "description": "Spotify OAuth2 client secret.", + "example": "db068a000000000000000000008b5b9f" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6ec271000000000000000000009beace", + "clientSecret": "db068a000000000000000000008b5b9f" + } + }, + "oAuth2Slack": { + "description": "OAuth2Slack", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Slack OAuth2 client ID.", + "example": "23000000089.15000000000023" + }, + "clientSecret": { + "type": "string", + "description": "Slack OAuth2 client secret.", + "example": "81656000000000000000000000f3d2fd" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "23000000089.15000000000023", + "clientSecret": "81656000000000000000000000f3d2fd" + } + }, + "oAuth2Podio": { + "description": "OAuth2Podio", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Podio OAuth2 client ID.", + "example": "appwrite-oauth-test-app" + }, + "clientSecret": { + "type": "string", + "description": "Podio OAuth2 client secret.", + "example": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "appwrite-oauth-test-app", + "clientSecret": "Rn247T0000000000000000000000000000000000000000000000000000W2zWTN" + } + }, + "oAuth2Notion": { + "description": "OAuth2Notion", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "oauthClientId": { + "type": "string", + "description": "Notion OAuth2 client ID.", + "example": "341d8700-0000-0000-0000-000000446ee3" + }, + "oauthClientSecret": { + "type": "string", + "description": "Notion OAuth2 client secret.", + "example": "secret_dLUr4b000000000000000000000000000000lFHAa9" + } + }, + "required": [ + "$id", + "enabled", + "oauthClientId", + "oauthClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "oauthClientId": "341d8700-0000-0000-0000-000000446ee3", + "oauthClientSecret": "secret_dLUr4b000000000000000000000000000000lFHAa9" + } + }, + "oAuth2Salesforce": { + "description": "OAuth2Salesforce", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "customerKey": { + "type": "string", + "description": "Salesforce OAuth2 consumer key.", + "example": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq" + }, + "customerSecret": { + "type": "string", + "description": "Salesforce OAuth2 consumer secret.", + "example": "3w000000000000e2" + }, + "prompt": { + "type": "array", + "description": "Salesforce OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "login" + ] + } + }, + "required": [ + "$id", + "enabled", + "customerKey", + "customerSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "customerKey": "3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "customerSecret": "3w000000000000e2", + "prompt": [ + "login" + ] + } + }, + "oAuth2Yahoo": { + "description": "OAuth2Yahoo", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Yahoo OAuth2 client ID.", + "example": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm" + }, + "clientSecret": { + "type": "string", + "description": "Yahoo OAuth2 client secret.", + "example": "cf978f0000000000000000000000000000c5e2e9" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "clientSecret": "cf978f0000000000000000000000000000c5e2e9" + } + }, + "oAuth2Cloudflare": { + "description": "OAuth2Cloudflare", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Cloudflare OAuth2 client ID.", + "example": "4b866000000000000000000000c9e4e2" + }, + "clientSecret": { + "type": "string", + "description": "Cloudflare OAuth2 client secret.", + "example": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "4b866000000000000000000000c9e4e2", + "clientSecret": "cfoc_5Q6YRl0000000000000000000000000000000000003d214f" + } + }, + "oAuth2HuggingFace": { + "description": "OAuth2HuggingFace", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Hugging Face OAuth2 client ID.", + "example": "2ab9cff9-d711-40ad-a91e-b08a49c42d24" + }, + "clientSecret": { + "type": "string", + "description": "Hugging Face OAuth2 client secret.", + "example": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "2ab9cff9-d711-40ad-a91e-b08a49c42d24", + "clientSecret": "oauth_app_secret_wcLhRtl000000000000000000000xbNdLt" + } + }, + "oAuth2Linkedin": { + "description": "OAuth2Linkedin", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "LinkedIn OAuth2 client ID.", + "example": "770000000000dv" + }, + "primaryClientSecret": { + "type": "string", + "description": "LinkedIn OAuth2 primary client secret.", + "example": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "primaryClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "770000000000dv", + "primaryClientSecret": "WPL_AP1.2Bf0000000000000.\/HtlYw==" + } + }, + "oAuth2Disqus": { + "description": "OAuth2Disqus", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "publicKey": { + "type": "string", + "description": "Disqus OAuth2 public key.", + "example": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX" + }, + "secretKey": { + "type": "string", + "description": "Disqus OAuth2 secret key.", + "example": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + } + }, + "required": [ + "$id", + "enabled", + "publicKey", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "publicKey": "cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "secretKey": "W7Bykj00000000000000000000000000000000000000000000000000003o43w9" + } + }, + "oAuth2Amazon": { + "description": "OAuth2Amazon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Amazon OAuth2 client ID.", + "example": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2" + }, + "clientSecret": { + "type": "string", + "description": "Amazon OAuth2 client secret.", + "example": "79ffe4000000000000000000000000000000000000000000000000000002de55" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "amzn1.application-oa2-client.87400c00000000000000000000063d5b2", + "clientSecret": "79ffe4000000000000000000000000000000000000000000000000000002de55" + } + }, + "oAuth2Etsy": { + "description": "OAuth2Etsy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "keyString": { + "type": "string", + "description": "Etsy OAuth2 keystring.", + "example": "nsgzxh0000000000008j85a2" + }, + "sharedSecret": { + "type": "string", + "description": "Etsy OAuth2 shared secret.", + "example": "tp000000ru" + } + }, + "required": [ + "$id", + "enabled", + "keyString", + "sharedSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "keyString": "nsgzxh0000000000008j85a2", + "sharedSecret": "tp000000ru" + } + }, + "oAuth2Facebook": { + "description": "OAuth2Facebook", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "appId": { + "type": "string", + "description": "Facebook OAuth2 app ID.", + "example": "260600000007694" + }, + "appSecret": { + "type": "string", + "description": "Facebook OAuth2 app secret.", + "example": "2d0b2800000000000000000000d38af4" + } + }, + "required": [ + "$id", + "enabled", + "appId", + "appSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "appId": "260600000007694", + "appSecret": "2d0b2800000000000000000000d38af4" + } + }, + "oAuth2Tradeshift": { + "description": "OAuth2Tradeshift", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "oauth2ClientId": { + "type": "string", + "description": "Tradeshift OAuth2 client ID.", + "example": "appwrite-test-org.appwrite-test-app" + }, + "oauth2ClientSecret": { + "type": "string", + "description": "Tradeshift OAuth2 client secret.", + "example": "7cb52700-0000-0000-0000-000000ca5b83" + } + }, + "required": [ + "$id", + "enabled", + "oauth2ClientId", + "oauth2ClientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "oauth2ClientId": "appwrite-test-org.appwrite-test-app", + "oauth2ClientSecret": "7cb52700-0000-0000-0000-000000ca5b83" + } + }, + "oAuth2Paypal": { + "description": "OAuth2Paypal", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "PayPal OAuth2 client ID.", + "example": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB" + }, + "secretKey": { + "type": "string", + "description": "PayPal OAuth2 secret key.", + "example": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "secretKey" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "secretKey": "EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp" + } + }, + "oAuth2Gitlab": { + "description": "OAuth2Gitlab", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "applicationId": { + "type": "string", + "description": "GitLab OAuth2 application ID.", + "example": "d41ffe0000000000000000000000000000000000000000000000000000d5e252" + }, + "secret": { + "type": "string", + "description": "GitLab OAuth2 secret.", + "example": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38" + }, + "endpoint": { + "type": "string", + "description": "GitLab OAuth2 endpoint URL. Defaults to https:\/\/gitlab.com for self-hosted instances.", + "example": "https:\/\/gitlab.com" + } + }, + "required": [ + "$id", + "enabled", + "applicationId", + "secret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "applicationId": "d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "secret": "gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "endpoint": "https:\/\/gitlab.com" + } + }, + "oAuth2Appwrite": { + "description": "OAuth2Appwrite", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Appwrite OAuth2 client ID.", + "example": "6a42000000000000b5a0" + }, + "clientSecret": { + "type": "string", + "description": "Appwrite OAuth2 client secret.", + "example": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "6a42000000000000b5a0", + "clientSecret": "b86afd000000000000000000000000000000000000000000000000000ced5f93" + } + }, + "oAuth2Authentik": { + "description": "OAuth2Authentik", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Authentik OAuth2 client ID.", + "example": "dTKOPa0000000000000000000000000000e7G8hv" + }, + "clientSecret": { + "type": "string", + "description": "Authentik OAuth2 client secret.", + "example": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK" + }, + "endpoint": { + "type": "string", + "description": "Authentik OAuth2 endpoint domain.", + "example": "example.authentik.com" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "dTKOPa0000000000000000000000000000e7G8hv", + "clientSecret": "ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "endpoint": "example.authentik.com" + } + }, + "oAuth2Auth0": { + "description": "OAuth2Auth0", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Auth0 OAuth2 client ID.", + "example": "OaOkIA000000000000000000005KLSYq" + }, + "clientSecret": { + "type": "string", + "description": "Auth0 OAuth2 client secret.", + "example": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF" + }, + "prompt": { + "type": "array", + "description": "Auth0 OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, + "endpoint": { + "type": "string", + "description": "Auth0 OAuth2 endpoint domain.", + "example": "example.us.auth0.com" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "OaOkIA000000000000000000005KLSYq", + "clientSecret": "zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "prompt": [ + "none" + ], + "endpoint": "example.us.auth0.com" + } + }, + "oAuth2FusionAuth": { + "description": "OAuth2FusionAuth", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "FusionAuth OAuth2 client ID.", + "example": "b2222c00-0000-0000-0000-000000862097" + }, + "clientSecret": { + "type": "string", + "description": "FusionAuth OAuth2 client secret.", + "example": "Jx4s0C0000000000000000000000000000000wGqLsc" + }, + "endpoint": { + "type": "string", + "description": "FusionAuth OAuth2 endpoint domain.", + "example": "example.fusionauth.io" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "b2222c00-0000-0000-0000-000000862097", + "clientSecret": "Jx4s0C0000000000000000000000000000000wGqLsc", + "endpoint": "example.fusionauth.io" + } + }, + "oAuth2Keycloak": { + "description": "OAuth2Keycloak", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Keycloak OAuth2 client ID.", + "example": "appwrite-o0000000st-app" + }, + "clientSecret": { + "type": "string", + "description": "Keycloak OAuth2 client secret.", + "example": "jdjrJd00000000000000000000HUsaZO" + }, + "endpoint": { + "type": "string", + "description": "Keycloak OAuth2 endpoint domain.", + "example": "keycloak.example.com" + }, + "realmName": { + "type": "string", + "description": "Keycloak OAuth2 realm name.", + "example": "appwrite-realm" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "endpoint", + "realmName" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "appwrite-o0000000st-app", + "clientSecret": "jdjrJd00000000000000000000HUsaZO", + "endpoint": "keycloak.example.com", + "realmName": "appwrite-realm" + } + }, + "oAuth2Oidc": { + "description": "OAuth2Oidc", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "OpenID Connect OAuth2 client ID.", + "example": "qibI2x0000000000000000000000000006L2YFoG" + }, + "clientSecret": { + "type": "string", + "description": "OpenID Connect OAuth2 client secret.", + "example": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV" + }, + "prompt": { + "type": "array", + "description": "OpenID Connect prompt values controlling the authentication and consent screens.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When set, authorization, token, and user info endpoints can be discovered automatically.", + "example": "https:\/\/myoauth.com\/.well-known\/openid-configuration" + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/authorize" + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/token" + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL.", + "example": "https:\/\/myoauth.com\/oauth2\/userinfo" + }, + "maxAge": { + "type": "integer", + "description": "Maximum authentication age in seconds. When set, the user must have authenticated within this many seconds.", + "format": "int32", + "example": 3600, + "nullable": true + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "wellKnownURL", + "authorizationURL", + "tokenURL", + "userInfoURL" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "qibI2x0000000000000000000000000006L2YFoG", + "clientSecret": "Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "prompt": [ + "none" + ], + "wellKnownURL": "https:\/\/myoauth.com\/.well-known\/openid-configuration", + "authorizationURL": "https:\/\/myoauth.com\/oauth2\/authorize", + "tokenURL": "https:\/\/myoauth.com\/oauth2\/token", + "userInfoURL": "https:\/\/myoauth.com\/oauth2\/userinfo", + "maxAge": 3600 + } + }, + "oAuth2Okta": { + "description": "OAuth2Okta", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Okta OAuth2 client ID.", + "example": "0oa00000000000000698" + }, + "clientSecret": { + "type": "string", + "description": "Okta OAuth2 client secret.", + "example": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV" + }, + "prompt": { + "type": "array", + "description": "Okta OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + } + ] + }, + "example": [ + "none" + ] + }, + "domain": { + "type": "string", + "description": "Okta OAuth2 domain.", + "example": "trial-6400025.okta.com" + }, + "authorizationServerId": { + "type": "string", + "description": "Okta OAuth2 authorization server ID.", + "example": "aus000000000000000h7z" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt", + "domain", + "authorizationServerId" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "0oa00000000000000698", + "clientSecret": "Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "prompt": [ + "none" + ], + "domain": "trial-6400025.okta.com", + "authorizationServerId": "aus000000000000000h7z" + } + }, + "oAuth2Kick": { + "description": "OAuth2Kick", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Kick OAuth2 client ID.", + "example": "01KQ7C00000000000001MFHS32" + }, + "clientSecret": { + "type": "string", + "description": "Kick OAuth2 client secret.", + "example": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "01KQ7C00000000000001MFHS32", + "clientSecret": "34ac5600000000000000000000000000000000000000000000000000e830c8b" + } + }, + "oAuth2Apple": { + "description": "OAuth2Apple", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "apple" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "serviceId": { + "type": "string", + "description": "Apple OAuth2 service ID.", + "example": "ip.appwrite.app.web" + }, + "keyId": { + "type": "string", + "description": "Apple OAuth2 key ID.", + "example": "P4000000N8" + }, + "teamId": { + "type": "string", + "description": "Apple OAuth2 team ID.", + "example": "D4000000R6" + }, + "p8File": { + "type": "string", + "description": "Apple OAuth2 .p8 private key file contents. The secret key wrapped by the PEM markers is 200 characters long.", + "example": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----" + }, + "nativeEnabled": { + "type": "boolean", + "description": "Native Sign in with Apple is active and can be used to create sessions from an ID token. Independent of enabled, which only controls the browser-based flow.", + "example": false + }, + "nativeClientIds": { + "type": "array", + "description": "App bundle IDs accepted as ID token audiences for native Sign in with Apple, next to the Services ID.", + "items": { + "type": "string" + }, + "example": [ + "com.example.app" + ] + } + }, + "required": [ + "$id", + "enabled", + "serviceId", + "keyId", + "teamId", + "p8File", + "nativeEnabled", + "nativeClientIds" + ], + "example": { + "$id": "apple", + "enabled": false, + "serviceId": "ip.appwrite.app.web", + "keyId": "P4000000N8", + "teamId": "D4000000R6", + "p8File": "-----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "nativeEnabled": false, + "nativeClientIds": [ + "com.example.app" + ] + } + }, + "oAuth2Microsoft": { + "description": "OAuth2Microsoft", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "applicationId": { + "type": "string", + "description": "Microsoft OAuth2 application ID.", + "example": "00001111-aaaa-2222-bbbb-3333cccc4444" + }, + "applicationSecret": { + "type": "string", + "description": "Microsoft OAuth2 application secret.", + "example": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u" + }, + "prompt": { + "type": "array", + "description": "Microsoft OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "consent" + ], + "title": "consent" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + }, + "tenant": { + "type": "string", + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID.", + "example": "common" + } + }, + "required": [ + "$id", + "enabled", + "applicationId", + "applicationSecret", + "prompt", + "tenant" + ], + "example": { + "$id": "github", + "enabled": false, + "applicationId": "00001111-aaaa-2222-bbbb-3333cccc4444", + "applicationSecret": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "prompt": [ + "none" + ], + "tenant": "common" + } + }, + "oAuth2Resend": { + "description": "OAuth2Resend", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Resend OAuth2 client ID.", + "example": "f47ac10b-58cc-4372-a567-0e02b2c3d479" + }, + "clientSecret": { + "type": "string", + "description": "Resend OAuth2 client secret.", + "example": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", + "clientSecret": "9c1e4b00000000000000000000000000000000000000000000000000a72d5f4" + } + }, + "oAuth2TikTok": { + "description": "OAuth2TikTok", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "TikTok OAuth2 client key.", + "example": "awz000000000tyw0" + }, + "clientSecret": { + "type": "string", + "description": "TikTok OAuth2 client secret.", + "example": "6wXewM00000000000000000000yXnite" + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "awz000000000tyw0", + "clientSecret": "6wXewM00000000000000000000yXnite" + } + }, + "oAuth2Kakao": { + "description": "OAuth2Kakao", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "example": "github" + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 provider is active and can be used to create sessions.", + "example": false + }, + "clientId": { + "type": "string", + "description": "Kakao OAuth2 REST API key.", + "example": "839ff5000000000000000000013206de" + }, + "clientSecret": { + "type": "string", + "description": "Kakao OAuth2 client secret.", + "example": "jLNVOK00000000000000000000yJebea" + }, + "prompt": { + "type": "array", + "description": "Kakao OAuth2 prompt values.", + "items": { + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "none" + ], + "title": "none" + }, + { + "type": "string", + "enum": [ + "login" + ], + "title": "login" + }, + { + "type": "string", + "enum": [ + "create" + ], + "title": "create" + }, + { + "type": "string", + "enum": [ + "select_account" + ], + "title": "select_account" + } + ] + }, + "example": [ + "none" + ] + } + }, + "required": [ + "$id", + "enabled", + "clientId", + "clientSecret", + "prompt" + ], + "example": { + "$id": "github", + "enabled": false, + "clientId": "839ff5000000000000000000013206de", + "clientSecret": "jLNVOK00000000000000000000yJebea", + "prompt": [ + "none" + ] + } + }, + "oAuth2ProviderList": { + "description": "OAuth2 Providers List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of OAuth2 providers in the given project.", + "format": "int32", + "example": 5 + }, + "providers": { + "type": "array", + "description": "List of OAuth2 providers.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/oAuth2Github" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Discord" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Figma" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Box" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Google" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + }, + { + "$ref": "#\/components\/schemas\/oAuth2X" + }, + { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Webflow" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Slack" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Podio" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Notion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Appwrite" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + }, + { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Apple" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Okta" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kick" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + }, + { + "$ref": "#\/components\/schemas\/oAuth2HuggingFace" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Resend" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Cloudflare" + }, + { + "$ref": "#\/components\/schemas\/oAuth2TikTok" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kakao" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/components\/schemas\/oAuth2Github", + "discord": "#\/components\/schemas\/oAuth2Discord", + "figma": "#\/components\/schemas\/oAuth2Figma", + "dropbox": "#\/components\/schemas\/oAuth2Dropbox", + "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", + "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", + "bitly": "#\/components\/schemas\/oAuth2Bitly", + "box": "#\/components\/schemas\/oAuth2Box", + "autodesk": "#\/components\/schemas\/oAuth2Autodesk", + "google": "#\/components\/schemas\/oAuth2Google", + "zoom": "#\/components\/schemas\/oAuth2Zoom", + "zoho": "#\/components\/schemas\/oAuth2Zoho", + "yandex": "#\/components\/schemas\/oAuth2Yandex", + "x": "#\/components\/schemas\/oAuth2X", + "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "webflow": "#\/components\/schemas\/oAuth2Webflow", + "twitch": "#\/components\/schemas\/oAuth2Twitch", + "stripe": "#\/components\/schemas\/oAuth2Stripe", + "spotify": "#\/components\/schemas\/oAuth2Spotify", + "slack": "#\/components\/schemas\/oAuth2Slack", + "podio": "#\/components\/schemas\/oAuth2Podio", + "notion": "#\/components\/schemas\/oAuth2Notion", + "salesforce": "#\/components\/schemas\/oAuth2Salesforce", + "yahoo": "#\/components\/schemas\/oAuth2Yahoo", + "linkedin": "#\/components\/schemas\/oAuth2Linkedin", + "disqus": "#\/components\/schemas\/oAuth2Disqus", + "amazon": "#\/components\/schemas\/oAuth2Amazon", + "etsy": "#\/components\/schemas\/oAuth2Etsy", + "facebook": "#\/components\/schemas\/oAuth2Facebook", + "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", + "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", + "paypal": "#\/components\/schemas\/oAuth2Paypal", + "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", + "gitlab": "#\/components\/schemas\/oAuth2Gitlab", + "appwrite": "#\/components\/schemas\/oAuth2Appwrite", + "authentik": "#\/components\/schemas\/oAuth2Authentik", + "auth0": "#\/components\/schemas\/oAuth2Auth0", + "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", + "keycloak": "#\/components\/schemas\/oAuth2Keycloak", + "oidc": "#\/components\/schemas\/oAuth2Oidc", + "apple": "#\/components\/schemas\/oAuth2Apple", + "okta": "#\/components\/schemas\/oAuth2Okta", + "kick": "#\/components\/schemas\/oAuth2Kick", + "microsoft": "#\/components\/schemas\/oAuth2Microsoft", + "huggingface": "#\/components\/schemas\/oAuth2HuggingFace", + "resend": "#\/components\/schemas\/oAuth2Resend", + "cloudflare": "#\/components\/schemas\/oAuth2Cloudflare", + "tiktok": "#\/components\/schemas\/oAuth2TikTok", + "kakao": "#\/components\/schemas\/oAuth2Kakao" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "providers" + ], + "example": { + "total": 5, + "providers": "" + } + }, + "policyPasswordDictionary": { + "description": "Policy Password Dictionary", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password dictionary policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyPasswordHistory": { + "description": "Policy Password History", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Password history length. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 5 + } + }, + "policyPasswordStrength": { + "description": "Policy Password Strength", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "min": { + "type": "integer", + "description": "Minimum password length required for user passwords.", + "format": "int32", + "example": 12 + }, + "uppercase": { + "type": "boolean", + "description": "Whether passwords must include at least one uppercase letter.", + "example": true + }, + "lowercase": { + "type": "boolean", + "description": "Whether passwords must include at least one lowercase letter.", + "example": true + }, + "number": { + "type": "boolean", + "description": "Whether passwords must include at least one number.", + "example": true + }, + "symbols": { + "type": "boolean", + "description": "Whether passwords must include at least one symbol.", + "example": true + } + }, + "required": [ + "$id", + "min", + "uppercase", + "lowercase", + "number", + "symbols" + ], + "example": { + "$id": "password-dictionary", + "min": 12, + "uppercase": true, + "lowercase": true, + "number": true, + "symbols": true + } + }, + "policyPasswordPersonalData": { + "description": "Policy Password Personal Data", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether password personal data policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyPasswordPwned": { + "description": "Policy Password Pwned", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether passwords are checked against known data breaches and the result recorded on the user.", + "example": true + }, + "sessions": { + "type": "boolean", + "description": "Whether a sign-in with a breached password is refused until the password is reset.", + "example": false + }, + "users": { + "type": "boolean", + "description": "Whether a breached password is rejected when a user signs up or sets a new password.", + "example": false + } + }, + "required": [ + "$id", + "enabled", + "sessions", + "users" + ], + "example": { + "$id": "password-dictionary", + "enabled": true, + "sessions": false, + "users": false + } + }, + "policySessionAlert": { + "description": "Policy Session Alert", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session alert policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policySessionDuration": { + "description": "Policy Session Duration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "duration": { + "type": "integer", + "description": "Session duration in seconds.", + "format": "int32", + "example": 3600 + } + }, + "required": [ + "$id", + "duration" + ], + "example": { + "$id": "password-dictionary", + "duration": 3600 + } + }, + "policySessionInvalidation": { + "description": "Policy Session Invalidation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether session invalidation policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policySessionLimit": { + "description": "Policy Session Limit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Maximum number of sessions allowed per user. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 10 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 10 + } + }, + "policyUserLimit": { + "description": "Policy User Limit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "total": { + "type": "integer", + "description": "Maximum number of users allowed in the project. A value of 0 means the policy is disabled.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "$id", + "total" + ], + "example": { + "$id": "password-dictionary", + "total": 100 + } + }, + "policyMembershipPrivacy": { + "description": "Policy Membership Privacy", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "userId": { + "type": "boolean", + "description": "Whether user ID is visible in memberships.", + "example": true + }, + "userEmail": { + "type": "boolean", + "description": "Whether user email is visible in memberships.", + "example": true + }, + "userPhone": { + "type": "boolean", + "description": "Whether user phone is visible in memberships.", + "example": true + }, + "userName": { + "type": "boolean", + "description": "Whether user name is visible in memberships.", + "example": true + }, + "userMFA": { + "type": "boolean", + "description": "Whether user MFA status is visible in memberships.", + "example": true + }, + "userAccessedAt": { + "type": "boolean", + "description": "Whether user last access time is visible in memberships.", + "example": true + } + }, + "required": [ + "$id", + "userId", + "userEmail", + "userPhone", + "userName", + "userMFA", + "userAccessedAt" + ], + "example": { + "$id": "password-dictionary", + "userId": true, + "userEmail": true, + "userPhone": true, + "userName": true, + "userMFA": true, + "userAccessedAt": true + } + }, + "policyMfaFactors": { + "description": "Policy MFA Factors", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "totp": { + "type": "boolean", + "description": "Whether TOTP can be used to complete an MFA challenge.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Whether email can be used to complete an MFA challenge.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Whether phone (SMS) can be used to complete an MFA challenge.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Whether the custom factor can be used to complete an MFA challenge.", + "example": true + } + }, + "required": [ + "$id", + "totp", + "email", + "phone", + "custom" + ], + "example": { + "$id": "password-dictionary", + "totp": true, + "email": true, + "phone": true, + "custom": true + } + }, + "policyPasskey": { + "description": "Policy Passkey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "rpId": { + "type": "string", + "description": "Relying party ID passkeys are bound to. Empty until configured.", + "example": "example.com" + }, + "origins": { + "type": "array", + "description": "Web origins allowed to register and sign in with passkeys.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com" + ] + } + }, + "required": [ + "$id", + "rpId", + "origins" + ], + "example": { + "$id": "password-dictionary", + "rpId": "example.com", + "origins": [ + "https:\/\/example.com" + ] + } + }, + "policyDenyAliasedEmail": { + "description": "Policy Deny Aliased Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny aliased email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyDisposableEmail": { + "description": "Policy Deny Disposable Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny disposable email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyFreeEmail": { + "description": "Policy Deny Free Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny free email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "policyDenyCorporateEmail": { + "description": "Policy Deny Corporate Email", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Policy ID.", + "example": "password-dictionary" + }, + "enabled": { + "type": "boolean", + "description": "Whether the deny non-corporate email policy is enabled.", + "example": true + } + }, + "required": [ + "$id", + "enabled" + ], + "example": { + "$id": "password-dictionary", + "enabled": true + } + }, + "platformWeb": { + "description": "Platform Web", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "hostname": { + "type": "string", + "description": "Web app hostname. Empty string for other platforms.", + "example": "app.example.com" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "hostname", + "key" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "hostname": "app.example.com" + } + }, + "platformApple": { + "description": "Platform Apple", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "bundleIdentifier" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "bundleIdentifier": "com.company.appname" + } + }, + "platformAndroid": { + "description": "Platform Android", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "applicationId": { + "type": "string", + "description": "Android application ID.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "applicationId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "applicationId": "com.company.appname" + } + }, + "platformWindows": { + "description": "Platform Windows", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageIdentifierName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "packageIdentifierName": "com.company.appname" + } + }, + "platformLinux": { + "description": "Platform Linux", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Platform ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Platform creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Platform update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Platform name.", + "example": "My Web App" + }, + "type": { + "description": "Platform type. Possible values are: windows, apple, android, linux, web.", + "example": "web", + "title": "PlatformType", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "windows" + ], + "title": "windows" + }, + { + "type": "string", + "enum": [ + "apple" + ], + "title": "apple" + }, + { + "type": "string", + "enum": [ + "android" + ], + "title": "android" + }, + { + "type": "string", + "enum": [ + "linux" + ], + "title": "linux" + }, + { + "type": "string", + "enum": [ + "web" + ], + "title": "web" + } + ] + }, + "packageName": { + "type": "string", + "description": "Linux package name.", + "example": "com.company.appname" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "type", + "packageName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Web App", + "type": "web", + "packageName": "com.company.appname" + } + }, + "platformList": { + "description": "Platforms List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of platforms in the given project.", + "format": "int32", + "example": 5 + }, + "platforms": { + "type": "array", + "description": "List of platforms.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/platformWeb" + }, + { + "$ref": "#\/components\/schemas\/platformApple" + }, + { + "$ref": "#\/components\/schemas\/platformAndroid" + }, + { + "$ref": "#\/components\/schemas\/platformWindows" + }, + { + "$ref": "#\/components\/schemas\/platformLinux" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "web": "#\/components\/schemas\/platformWeb", + "apple": "#\/components\/schemas\/platformApple", + "android": "#\/components\/schemas\/platformAndroid", + "windows": "#\/components\/schemas\/platformWindows", + "linux": "#\/components\/schemas\/platformLinux" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "platforms" + ], + "example": { + "total": 5, + "platforms": "" + } + }, + "variable": { + "description": "Variable", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Variable ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Variable creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "key": { + "type": "string", + "description": "Variable key.", + "example": "API_KEY" + }, + "value": { + "type": "string", + "description": "Variable value.", + "example": "myPa$$word1" + }, + "secret": { + "type": "boolean", + "description": "Variable secret flag. Secret variables can only be updated or deleted, but never read.", + "example": false + }, + "resourceType": { + "type": "string", + "description": "Service to which the variable belongs. Possible values are \"project\", \"function\"", + "example": "function" + }, + "resourceId": { + "type": "string", + "description": "ID of resource to which the variable belongs. If resourceType is \"project\", it is empty. If resourceType is \"function\", it is ID of the function.", + "example": "myAwesomeFunction" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "key", + "value", + "secret", + "resourceType", + "resourceId" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "key": "API_KEY", + "value": "myPa$$word1", + "secret": false, + "resourceType": "function", + "resourceId": "myAwesomeFunction" + } + }, + "country": { + "description": "Country", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Country name.", + "example": "United States" + }, + "code": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "United States", + "code": "US" + } + }, + "continent": { + "description": "Continent", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Continent name.", + "example": "Europe" + }, + "code": { + "type": "string", + "description": "Continent two letter code.", + "example": "EU" + } + }, + "required": [ + "name", + "code" + ], + "example": { + "name": "Europe", + "code": "EU" + } + }, + "language": { + "description": "Language", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Language name.", + "example": "Italian" + }, + "code": { + "type": "string", + "description": "Language two-character ISO 639-1 codes.", + "example": "it" + }, + "nativeName": { + "type": "string", + "description": "Language native name.", + "example": "Italiano" + } + }, + "required": [ + "name", + "code", + "nativeName" + ], + "example": { + "name": "Italian", + "code": "it", + "nativeName": "Italiano" + } + }, + "currency": { + "description": "Currency", + "type": "object", + "properties": { + "symbol": { + "type": "string", + "description": "Currency symbol.", + "example": "$" + }, + "name": { + "type": "string", + "description": "Currency name.", + "example": "US dollar" + }, + "symbolNative": { + "type": "string", + "description": "Currency native symbol.", + "example": "$" + }, + "decimalDigits": { + "type": "integer", + "description": "Number of decimal digits.", + "format": "int32", + "example": 2 + }, + "rounding": { + "type": "number", + "description": "Currency digit rounding.", + "format": "double", + "example": 0 + }, + "code": { + "type": "string", + "description": "Currency code in [ISO 4217-1](http:\/\/en.wikipedia.org\/wiki\/ISO_4217) three-character format.", + "example": "USD" + }, + "namePlural": { + "type": "string", + "description": "Currency plural name", + "example": "US dollars" + } + }, + "required": [ + "symbol", + "name", + "symbolNative", + "decimalDigits", + "rounding", + "code", + "namePlural" + ], + "example": { + "symbol": "$", + "name": "US dollar", + "symbolNative": "$", + "decimalDigits": 2, + "rounding": 0, + "code": "USD", + "namePlural": "US dollars" + } + }, + "phone": { + "description": "Phone", + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Phone code.", + "example": "+1" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "example": "United States" + } + }, + "required": [ + "code", + "countryCode", + "countryName" + ], + "example": { + "code": "+1", + "countryCode": "US", + "countryName": "United States" + } + }, + "headers": { + "description": "Headers", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Header name.", + "example": "Content-Type" + }, + "value": { + "type": "string", + "description": "Header value.", + "example": "application\/json" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "Content-Type", + "value": "application\/json" + } + }, + "specification": { + "description": "Specification", + "type": "object", + "properties": { + "memory": { + "type": "integer", + "description": "Memory size in MB.", + "format": "int32", + "example": 512 + }, + "cpus": { + "type": "number", + "description": "Number of CPUs.", + "format": "double", + "example": 1 + }, + "enabled": { + "type": "boolean", + "description": "Is size enabled.", + "example": true + }, + "slug": { + "type": "string", + "description": "Size slug.", + "example": "s-1vcpu-512mb" + } + }, + "required": [ + "memory", + "cpus", + "enabled", + "slug" + ], + "example": { + "memory": 512, + "cpus": 1, + "enabled": true, + "slug": "s-1vcpu-512mb" + } + }, + "proxyRule": { + "description": "Rule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Rule creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Rule update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", + "example": "deployment" + }, + "trigger": { + "type": "string", + "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", + "example": "manual" + }, + "redirectUrl": { + "type": "string", + "description": "URL to redirect to. Used if type is \"redirect\"", + "example": "https:\/\/appwrite.io\/docs" + }, + "redirectStatusCode": { + "type": "integer", + "description": "Status code to apply during redirect. Used if type is \"redirect\"", + "format": "int32", + "example": 301 + }, + "deploymentId": { + "type": "string", + "description": "ID of deployment. Used if type is \"deployment\"", + "example": "n3u9feiwmf" + }, + "deploymentResourceType": { + "description": "Type of deployment resource: function, site, or dedicatedDatabase.", + "example": "function", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "function" + ], + "title": "function" + }, + { + "type": "string", + "enum": [ + "site" + ], + "title": "site" + }, + { + "type": "string", + "enum": [ + "dedicatedDatabase" + ], + "title": "dedicatedDatabase" + } + ], + "nullable": true + }, + "deploymentResourceId": { + "type": "string", + "description": "ID of deployment's resource (site or function ID). Used if type is \"deployment\"", + "example": "n3u9feiwmf" + }, + "deploymentVcsProviderBranch": { + "type": "string", + "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", + "example": "main" + }, + "status": { + "description": "Domain verification status. Possible values are \"unverified\", \"verifying\", \"verified\"", + "example": "verified", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "unverified" + ], + "title": "unverified" + }, + { + "type": "string", + "enum": [ + "verifying" + ], + "title": "verifying" + }, + { + "type": "string", + "enum": [ + "verified" + ], + "title": "verified" + } + ] + }, + "logs": { + "type": "string", + "description": "Logs from rule verification or certificate generation. Certificate generation logs are prioritized if both are available.", + "example": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record." + }, + "renewAt": { + "type": "string", + "description": "Certificate auto-renewal date in ISO 8601 format.", + "example": "datetime" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domain", + "type", + "trigger", + "redirectUrl", + "redirectStatusCode", + "deploymentId", + "deploymentResourceId", + "deploymentVcsProviderBranch", + "status", + "logs", + "renewAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domain": "appwrite.company.com", + "type": "deployment", + "trigger": "manual", + "redirectUrl": "https:\/\/appwrite.io\/docs", + "redirectStatusCode": 301, + "deploymentId": "n3u9feiwmf", + "deploymentResourceType": "function", + "deploymentResourceId": "n3u9feiwmf", + "deploymentVcsProviderBranch": "main", + "status": "verified", + "logs": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record.", + "renewAt": "datetime" + } + }, + "emailTemplate": { + "description": "EmailTemplate", + "type": "object", + "properties": { + "templateId": { + "type": "string", + "description": "Template type", + "example": "verification" + }, + "locale": { + "type": "string", + "description": "Template locale", + "example": "en_us" + }, + "message": { + "type": "string", + "description": "Template message", + "example": "Click on the link to verify your account." + }, + "senderName": { + "type": "string", + "description": "Name of the sender", + "example": "My User" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "example": "mail@appwrite.io" + }, + "replyToEmail": { + "type": "string", + "description": "Reply to email address", + "example": "emails@appwrite.io" + }, + "replyToName": { + "type": "string", + "description": "Reply to name", + "example": "Support Team" + }, + "subject": { + "type": "string", + "description": "Email subject", + "example": "Please verify your email address" + } + }, + "required": [ + "templateId", + "locale", + "message", + "senderName", + "senderEmail", + "replyToEmail", + "replyToName", + "subject" + ], + "example": { + "templateId": "verification", + "locale": "en_us", + "message": "Click on the link to verify your account.", + "senderName": "My User", + "senderEmail": "mail@appwrite.io", + "replyToEmail": "emails@appwrite.io", + "replyToName": "Support Team", + "subject": "Please verify your email address" + } + }, + "mfaChallenge": { + "description": "MFA Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "mfaChallengeSecret": { + "description": "MFA Challenge Secret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "code": { + "type": "string", + "description": "Challenge code to be delivered to the end user through a custom channel.", + "example": "446372" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire", + "code" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "expire": "2020-10-15T06:38:00.000+00:00", + "code": "446372" + } + }, + "tokenSecret": { + "description": "Token Secret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "5e5ea5c168bb8" + }, + "secret": { + "type": "string", + "description": "Token secret key. Exchange it for a session with the create session endpoint.", + "example": "" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "phrase": { + "type": "string", + "description": "Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.", + "example": "Golden Fox" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "secret", + "expire", + "phrase" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "secret": "", + "expire": "2020-10-15T06:38:00.000+00:00", + "phrase": "Golden Fox" + } + }, + "passkey": { + "description": "Passkey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Passkey ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Passkey creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Passkey update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Passkey name.", + "example": "My laptop" + }, + "accessedAt": { + "type": "string", + "description": "Most recent sign-in with this passkey in ISO 8601 format. Empty until the passkey is used to sign in.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "accessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My laptop", + "accessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "passkeyChallenge": { + "description": "Passkey Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Challenge ID. When signing in, pass it back with the credential to receive a token.", + "example": "bb8ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Challenge creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "passkeyId": { + "type": "string", + "description": "ID of the passkey being registered. Empty for sign-in challenges.", + "example": "5e5ea5c16897e" + }, + "expire": { + "type": "string", + "description": "Challenge expiration date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "publicKey": { + "type": "object", + "additionalProperties": true, + "description": "WebAuthn options in JSON form. Pass them to `PublicKeyCredential.parseCreationOptionsFromJSON()` when registering, or `PublicKeyCredential.parseRequestOptionsFromJSON()` when signing in.", + "example": { + "challenge": "PBN-3LnR1ZxSSpC0TgJsbUu92mcdgErmvtne916-yPs", + "rpId": "example.com", + "userVerification": "required" + } + } + }, + "required": [ + "$id", + "$createdAt", + "passkeyId", + "expire", + "publicKey" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "passkeyId": "5e5ea5c16897e", + "expire": "2020-10-15T06:38:00.000+00:00", + "publicKey": { + "challenge": "PBN-3LnR1ZxSSpC0TgJsbUu92mcdgErmvtne916-yPs", + "rpId": "example.com", + "userVerification": "required" + } + } + }, + "passkeyList": { + "description": "Passkeys List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of passkeys that matched your query.", + "format": "int32", + "example": 5 + }, + "passkeys": { + "type": "array", + "description": "List of passkeys.", + "items": { + "$ref": "#\/components\/schemas\/passkey" + }, + "example": [] + } + }, + "required": [ + "total", + "passkeys" + ], + "example": { + "total": 5, + "passkeys": "" + } + }, + "mfaRecoveryCodes": { + "description": "MFA Recovery Codes", + "type": "object", + "properties": { + "recoveryCodes": { + "type": "array", + "description": "Recovery codes.", + "items": { + "type": "string" + }, + "example": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "required": [ + "recoveryCodes" + ], + "example": { + "recoveryCodes": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "mfaType": { + "description": "MFAType", + "type": "object", + "properties": { + "secret": { + "type": "string", + "description": "Secret token used for TOTP factor.", + "example": "[SHARED_SECRET]" + }, + "uri": { + "type": "string", + "description": "URI for authenticator apps.", + "example": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" + } + }, + "required": [ + "secret", + "uri" + ], + "example": { + "secret": "[SHARED_SECRET]", + "uri": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" + } + }, + "mfaFactors": { + "description": "MFAFactors", + "type": "object", + "properties": { + "totp": { + "type": "boolean", + "description": "Can TOTP be used for MFA challenge for this account.", + "example": true + }, + "phone": { + "type": "boolean", + "description": "Can phone (SMS) be used for MFA challenge for this account.", + "example": true + }, + "email": { + "type": "boolean", + "description": "Can email be used for MFA challenge for this account.", + "example": true + }, + "recoveryCode": { + "type": "boolean", + "description": "Can recovery code be used for MFA challenge for this account.", + "example": true + }, + "custom": { + "type": "boolean", + "description": "Can custom factor be used for MFA challenge for this account.", + "example": true + } + }, + "required": [ + "totp", + "phone", + "email", + "recoveryCode", + "custom" + ], + "example": { + "totp": true, + "phone": true, + "email": true, + "recoveryCode": true, + "custom": true + } + }, + "provider": { + "description": "Provider", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Provider ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Provider creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Provider update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name for the provider instance.", + "example": "Mailgun" + }, + "provider": { + "type": "string", + "description": "The name of the provider service.", + "example": "mailgun" + }, + "enabled": { + "type": "boolean", + "description": "Is provider enabled?", + "example": true + }, + "type": { + "type": "string", + "description": "Type of provider.", + "example": "sms" + }, + "credentials": { + "type": "object", + "additionalProperties": true, + "description": "Provider credentials.", + "example": { + "key": "123456789" + } + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Provider options.", + "example": { + "from": "sender-email@mydomain" + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "provider", + "enabled", + "type", + "credentials" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Mailgun", + "provider": "mailgun", + "enabled": true, + "type": "sms", + "credentials": { + "key": "123456789" + }, + "options": { + "from": "sender-email@mydomain" + } + } + }, + "message": { + "description": "Message", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Message ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Message creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Message update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "providerType": { + "type": "string", + "description": "Message provider type.", + "example": "email" + }, + "topics": { + "type": "array", + "description": "Topic IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "users": { + "type": "array", + "description": "User IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "targets": { + "type": "array", + "description": "Target IDs set as recipients.", + "items": { + "type": "string" + }, + "example": [ + "5e5ea5c16897e" + ] + }, + "scheduledAt": { + "type": "string", + "description": "The scheduled time for message.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveredAt": { + "type": "string", + "description": "The time when the message was delivered.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveryErrors": { + "type": "array", + "description": "Delivery errors if any.", + "items": { + "type": "string" + }, + "example": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "nullable": true + }, + "deliveredTotal": { + "type": "integer", + "description": "Number of recipients the message was delivered to.", + "format": "int32", + "example": 1 + }, + "data": { + "type": "object", + "additionalProperties": true, + "description": "Data of the message.", + "example": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." + } + }, + "status": { + "description": "Status of delivery.", + "example": "processing", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "draft" + ], + "title": "draft" + }, + { + "type": "string", + "enum": [ + "processing" + ], + "title": "processing" + }, + { + "type": "string", + "enum": [ + "scheduled" + ], + "title": "scheduled" + }, + { + "type": "string", + "enum": [ + "sent" + ], + "title": "sent" + }, + { + "type": "string", + "enum": [ + "failed" + ], + "title": "failed" + } + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "providerType", + "topics", + "users", + "targets", + "deliveredTotal", + "data", + "status" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "topics": [ + "5e5ea5c16897e" + ], + "users": [ + "5e5ea5c16897e" + ], + "targets": [ + "5e5ea5c16897e" + ], + "scheduledAt": "2020-10-15T06:38:00.000+00:00", + "deliveredAt": "2020-10-15T06:38:00.000+00:00", + "deliveryErrors": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "deliveredTotal": 1, + "data": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." + }, + "status": "processing" + } + }, + "topic": { + "description": "Topic", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Topic creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Topic update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "The name of the topic.", + "example": "events" + }, + "emailTotal": { + "type": "integer", + "description": "Total count of email subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "smsTotal": { + "type": "integer", + "description": "Total count of SMS subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "pushTotal": { + "type": "integer", + "description": "Total count of push subscribers subscribed to the topic.", + "format": "int32", + "example": 100 + }, + "subscribe": { + "type": "array", + "description": "Subscribe permissions.", + "items": { + "type": "string" + }, + "example": [ + "users" + ] + }, + "qos": { + "type": "integer", + "description": "MQTT QoS for delivery on this topic. Null lets the subscriber choose their level.", + "format": "int32", + "example": 1, + "nullable": true + }, + "expiry": { + "type": "integer", + "description": "Message retention in seconds for offline delivery.", + "format": "int32", + "example": 604800, + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "emailTotal", + "smsTotal", + "pushTotal", + "subscribe" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "events", + "emailTotal": 100, + "smsTotal": 100, + "pushTotal": 100, + "subscribe": "users", + "qos": 1, + "expiry": 604800 + } + }, + "transaction": { + "description": "Transaction", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Transaction ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Transaction creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Transaction update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", + "example": "pending" + }, + "operations": { + "type": "integer", + "description": "Number of operations in the transaction.", + "format": "int32", + "example": 5 + }, + "expiresAt": { + "type": "string", + "description": "Expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "status", + "operations", + "expiresAt" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "status": "pending", + "operations": 5, + "expiresAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "subscriber": { + "description": "Subscriber", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Subscriber ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Subscriber creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Subscriber update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "targetId": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "target": { + "type": "object", + "description": "Target.", + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/target" + } + ] + }, + "userId": { + "type": "string", + "description": "Topic ID.", + "example": "5e5ea5c16897e" + }, + "userName": { + "type": "string", + "description": "User Name.", + "example": "Aegon Targaryen" + }, + "topicId": { + "type": "string", + "description": "Topic ID.", + "example": "259125845563242502" + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "targetId", + "target", + "userId", + "userName", + "topicId", + "providerType" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "targetId": "259125845563242502", + "target": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" + }, + "userId": "5e5ea5c16897e", + "userName": "Aegon Targaryen", + "topicId": "259125845563242502", + "providerType": "email" + } + }, + "target": { + "description": "Target", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Target ID.", + "example": "259125845563242502" + }, + "$createdAt": { + "type": "string", + "description": "Target creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Target update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Target Name.", + "example": "Apple iPhone 12" + }, + "userId": { + "type": "string", + "description": "User ID.", + "example": "259125845563242502" + }, + "providerId": { + "type": "string", + "description": "Provider ID.", + "example": "259125845563242502", + "nullable": true + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "example": "email" + }, + "identifier": { + "type": "string", + "description": "The target identifier.", + "example": "token" + }, + "expired": { + "type": "boolean", + "description": "Is the target expired.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "userId", + "providerType", + "identifier", + "expired" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Apple iPhone 12", + "userId": "259125845563242502", + "providerId": "259125845563242502", + "providerType": "email", + "identifier": "token", + "expired": false + } + }, + "insight": { + "description": "Insight", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Insight ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Insight creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Insight update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "reportId": { + "type": "string", + "description": "Parent report ID. Insights always belong to a report.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Insight type. One of databaseIndex (legacy), tablesDBIndex, documentsDBIndex, vectorsDBIndex, databasePerformance, sitePerformance, siteAccessibility, siteSeo, functionPerformance. The index types are engine-specific so each CTA can pair the right service+method (databases.createIndex, tablesDB.createIndex, documentsDB.createIndex, or vectorsDB.createIndex).", + "example": "tablesDBIndex" + }, + "severity": { + "type": "string", + "description": "Insight severity. One of info, warning, critical.", + "example": "warning" + }, + "status": { + "type": "string", + "description": "Insight status. One of active, dismissed.", + "example": "active" + }, + "resourceType": { + "type": "string", + "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", + "example": "databases" + }, + "resourceId": { + "type": "string", + "description": "ID of the resource the insight is about.", + "example": "main" + }, + "parentResourceType": { + "type": "string", + "description": "Plural noun for the parent resource that contains the insight's resource, e.g. an insight about a column index on a table \u2192 resourceType=indexes, parentResourceType=tables. Empty when the resource has no parent.", + "example": "tables" + }, + "parentResourceId": { + "type": "string", + "description": "ID of the parent resource. Empty when the resource has no parent.", + "example": "orders" + }, + "title": { + "type": "string", + "description": "Insight title.", + "example": "Missing index on collection orders" + }, + "summary": { + "type": "string", + "description": "Short markdown summary describing the insight.", + "example": "Queries against `orders.status` are scanning the full collection." + }, + "ctas": { + "type": "array", + "description": "List of call-to-action buttons attached to this insight.", + "items": { + "$ref": "#\/components\/schemas\/insightCTA" + }, + "example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the insight was analyzed in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "dismissedAt": { + "type": "string", + "description": "Time the insight was dismissed in ISO 8601 format. Empty when not dismissed.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "dismissedBy": { + "type": "string", + "description": "User ID that dismissed the insight. Empty when not dismissed.", + "example": "5e5ea5c16897e", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "reportId", + "type", + "severity", + "status", + "resourceType", + "resourceId", + "parentResourceType", + "parentResourceId", + "title", + "summary", + "ctas" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "reportId": "5e5ea5c16897e", + "type": "tablesDBIndex", + "severity": "warning", + "status": "active", + "resourceType": "databases", + "resourceId": "main", + "parentResourceType": "tables", + "parentResourceId": "orders", + "title": "Missing index on collection orders", + "summary": "Queries against `orders.status` are scanning the full collection.", + "ctas": [], + "analyzedAt": "2020-10-15T06:38:00.000+00:00", + "dismissedAt": "2020-10-15T06:38:00.000+00:00", + "dismissedBy": "5e5ea5c16897e" + } + }, + "insightCTA": { + "description": "InsightCTA", + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Human-readable label for the CTA, used in UI.", + "example": "Create missing index" + }, + "service": { + "type": "string", + "description": "Public API service (SDK namespace) the client should invoke. Must match the engine that owns the resource \u2014 for index suggestions: databases (legacy), tablesDB, documentsDB, or vectorsDB.", + "example": "tablesDB" + }, + "method": { + "type": "string", + "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", + "example": "createIndex" + }, + "params": { + "type": "object", + "additionalProperties": true, + "description": "Parameter map the client should pass to the service method when this CTA is triggered. Keys match the target API's parameter names (e.g. databaseId\/tableId\/columns for tablesDB, databaseId\/collectionId\/attributes for the legacy Databases API).", + "example": { + "databaseId": "main", + "tableId": "orders", + "key": "_idx_status", + "type": "key", + "columns": [ + "status" + ] + } + } + }, + "required": [ + "label", + "service", + "method", + "params" + ], + "example": { + "label": "Create missing index", + "service": "tablesDB", + "method": "createIndex", + "params": { + "databaseId": "main", + "tableId": "orders", + "key": "_idx_status", + "type": "key", + "columns": [ + "status" + ] + } + } + }, + "report": { + "description": "Report", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Report ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Report creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Report update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the third-party app that submitted the report.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", + "example": "lighthouse" + }, + "title": { + "type": "string", + "description": "Short, human-readable title for the report.", + "example": "Lighthouse audit for https:\/\/appwrite.io\/" + }, + "summary": { + "type": "string", + "description": "Markdown summary describing the report.", + "example": "Performance score 78. 4 opportunities found." + }, + "targetType": { + "type": "string", + "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", + "example": "urls" + }, + "target": { + "type": "string", + "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", + "example": "https:\/\/appwrite.io\/" + }, + "categories": { + "type": "array", + "description": "Categories covered by the report, e.g. performance, accessibility.", + "items": { + "type": "string" + }, + "example": [ + "performance", + "accessibility" + ] + }, + "insights": { + "type": "array", + "description": "Insights nested under this report.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the report was analyzed in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "type", + "title", + "summary", + "targetType", + "target", + "categories", + "insights" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "type": "lighthouse", + "title": "Lighthouse audit for https:\/\/appwrite.io\/", + "summary": "Performance score 78. 4 opportunities found.", + "targetType": "urls", + "target": "https:\/\/appwrite.io\/", + "categories": [ + "performance", + "accessibility" + ], + "insights": [], + "analyzedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "activityEvent": { + "description": "ActivityEvent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Event ID.", + "example": "5e5ea5c16897e" + }, + "actorType": { + "type": "string", + "description": "Actor type.", + "example": "user" + }, + "actorId": { + "type": "string", + "description": "Actor ID.", + "example": "610fc2f985ee0" + }, + "actorEmail": { + "type": "string", + "description": "Actor Email.", + "example": "john@appwrite.io" + }, + "actorName": { + "type": "string", + "description": "Actor Name.", + "example": "John Doe" + }, + "resourceParent": { + "type": "string", + "description": "Resource parent.", + "example": "database\/ID" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "example": "collection" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "example": "610fc2f985ee0" + }, + "resource": { + "type": "string", + "description": "Resource.", + "example": "collections\/610fc2f985ee0" + }, + "event": { + "type": "string", + "description": "Event name.", + "example": "account.sessions.create" + }, + "userAgent": { + "type": "string", + "description": "User agent.", + "example": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/86.0.4240.198 Safari\/537.36" + }, + "ip": { + "type": "string", + "description": "IP address.", + "example": "127.0.0.1" + }, + "mode": { + "type": "string", + "description": "API mode when event triggered.", + "example": "admin" + }, + "country": { + "type": "string", + "description": "Location.", + "example": "US" + }, + "continentCode": { + "type": "string", + "description": "Continent code.", + "example": "NA" + }, + "city": { + "type": "string", + "description": "City name.", + "example": "Mountain View" + }, + "subdivisions": { + "type": "string", + "description": "Region\/state chain.", + "example": "California" + }, + "isp": { + "type": "string", + "description": "Internet service provider.", + "example": "Google" + }, + "autonomousSystemNumber": { + "type": "string", + "description": "Autonomous System Number (ASN).", + "example": "15169" + }, + "autonomousSystemOrganization": { + "type": "string", + "description": "Organization that owns the ASN.", + "example": "GOOGLE" + }, + "connectionType": { + "type": "string", + "description": "Connection type (e.g. cable, cellular, corporate).", + "example": "cable" + }, + "connectionUsageType": { + "type": "string", + "description": "User type (e.g. residential, business, hosting).", + "example": "residential" + }, + "connectionOrganization": { + "type": "string", + "description": "Registered organization of the IP.", + "example": "Google LLC" + }, + "time": { + "type": "string", + "description": "Log creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "610fc2f985ee0" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "610fc2f985ee0" + }, + "hostname": { + "type": "string", + "description": "Hostname.", + "example": "appwrite.io" + }, + "sdk": { + "type": "string", + "description": "Name of the SDK that triggered the event.", + "example": "web" + }, + "sdkVersion": { + "type": "string", + "description": "Version of the SDK that triggered the event.", + "example": "14.0.0" + } + }, + "required": [ + "$id", + "actorType", + "actorId", + "actorEmail", + "actorName", + "resourceParent", + "resourceType", + "resourceId", + "resource", + "event", + "userAgent", + "ip", + "mode", + "country", + "continentCode", + "city", + "subdivisions", + "isp", + "autonomousSystemNumber", + "autonomousSystemOrganization", + "connectionType", + "connectionUsageType", + "connectionOrganization", + "time", + "projectId", + "teamId", + "hostname", + "sdk", + "sdkVersion" + ], + "example": { + "$id": "5e5ea5c16897e", + "actorType": "user", + "actorId": "610fc2f985ee0", + "actorEmail": "john@appwrite.io", + "actorName": "John Doe", + "resourceParent": "database\/ID", + "resourceType": "collection", + "resourceId": "610fc2f985ee0", + "resource": "collections\/610fc2f985ee0", + "event": "account.sessions.create", + "userAgent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/86.0.4240.198 Safari\/537.36", + "ip": "127.0.0.1", + "mode": "admin", + "country": "US", + "continentCode": "NA", + "city": "Mountain View", + "subdivisions": "California", + "isp": "Google", + "autonomousSystemNumber": "15169", + "autonomousSystemOrganization": "GOOGLE", + "connectionType": "cable", + "connectionUsageType": "residential", + "connectionOrganization": "Google LLC", + "time": "2020-10-15T06:38:00.000+00:00", + "projectId": "610fc2f985ee0", + "teamId": "610fc2f985ee0", + "hostname": "appwrite.io", + "sdk": "web", + "sdkVersion": "14.0.0" + } + }, + "additionalResource": { + "description": "AdditionalResource", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Resource name", + "example": "" + }, + "unit": { + "type": "string", + "description": "Resource unit", + "example": "GB" + }, + "currency": { + "type": "string", + "description": "Price currency", + "example": "USD" + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 5 + }, + "value": { + "type": "integer", + "description": "Resource value", + "format": "int32", + "example": 25 + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "example": "" + } + }, + "required": [ + "name", + "unit", + "currency", + "price", + "value", + "invoiceDesc" + ], + "example": { + "name": "", + "unit": "GB", + "currency": "USD", + "price": 5, + "value": 25, + "invoiceDesc": "" + } + }, + "analyticsMetric": { + "description": "AnalyticsMetric", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Dimension value this row covers. Null when no dimension was requested, empty when the dimension could not be derived for those events.", + "example": "google.com", + "nullable": true + }, + "date": { + "type": "string", + "description": "Start of the time bucket this row covers, in ISO 8601. Null when no interval was requested.", + "example": "2026-05-01T00:00:00.000+00:00", + "nullable": true + }, + "visitors": { + "type": "integer", + "description": "Unique visitors in the requested range.", + "format": "int32", + "example": 1234 + }, + "sessions": { + "type": "integer", + "description": "Unique sessions in the requested range.", + "format": "int32", + "example": 4567 + }, + "pageviews": { + "type": "integer", + "description": "Total pageview events (events with name=\"pageview\") in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 5678, + "nullable": true + }, + "events": { + "type": "integer", + "description": "Total events in the requested range.", + "format": "int32", + "example": 8910 + }, + "visits": { + "type": "integer", + "description": "Total sessions with activity in the requested range. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "int32", + "example": 2345, + "nullable": true + }, + "bounceRate": { + "type": "number", + "description": "Share of single-event sessions, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 42.5, + "nullable": true + }, + "visitDuration": { + "type": "number", + "description": "Average session length in seconds, measured first event to last event. Single-event sessions count as 0. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 75.4, + "nullable": true + }, + "viewsPerVisit": { + "type": "number", + "description": "Average pageviews per session (pageviews divided by visits). Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 2.7, + "nullable": true + }, + "scrollDepth": { + "type": "number", + "description": "Average scroll depth across events, as a percentage. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 65, + "nullable": true + }, + "engagementTime": { + "type": "number", + "description": "Average engaged time per session in seconds, counting only foreground time. Sessions that reported no engagement are excluded. Only the flat aggregate computes it; null on breakdown and time-series rows.", + "format": "double", + "example": 18432, + "nullable": true + } + }, + "required": [ + "visitors", + "sessions", + "events" + ], + "example": { + "value": "google.com", + "date": "2026-05-01T00:00:00.000+00:00", + "visitors": 1234, + "sessions": 4567, + "pageviews": 5678, + "events": 8910, + "visits": 2345, + "bounceRate": 42.5, + "visitDuration": 75.4, + "viewsPerVisit": 2.7, + "scrollDepth": 65, + "engagementTime": 18432 + } + }, + "analyticsMetricList": { + "description": "AnalyticsMetricList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of metric rows returned.", + "format": "int32", + "example": 30 + }, + "metrics": { + "type": "array", + "description": "Metric rows: one per time bucket, one per dimension value, or a single row for the flat aggregate.", + "items": { + "$ref": "#\/components\/schemas\/analyticsMetric" + }, + "example": [] + } + }, + "required": [ + "total", + "metrics" + ], + "example": { + "total": 30, + "metrics": [] + } + }, + "analyticsProperty": { + "description": "AnalyticsProperty", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Analytics property ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Property creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Property update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human-readable name of the tracked website or application.", + "example": "My Website" + }, + "domain": { + "type": "string", + "description": "Primary domain being tracked (e.g. example.com). May be empty for native apps.", + "example": "example.com" + }, + "enabled": { + "type": "boolean", + "description": "Whether tracking is currently active.", + "example": true + }, + "public": { + "type": "boolean", + "description": "Whether stats for this property are publicly viewable.", + "example": false + }, + "allowedOrigins": { + "type": "array", + "description": "List of origins allowed to send tracking events. Use [\"*\"] to allow all.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com" + ] + }, + "accessedAt": { + "type": "string", + "description": "Most recent event date in ISO 8601 format. This attribute is only updated again after 24 hours.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "firstAccessedAt": { + "type": "string", + "description": "First event date in ISO 8601 format. Empty until the property receives its first event.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "domain", + "enabled", + "public", + "allowedOrigins", + "accessedAt", + "firstAccessedAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Website", + "domain": "example.com", + "enabled": true, + "public": false, + "allowedOrigins": [ + "https:\/\/example.com" + ], + "accessedAt": "2020-10-15T06:38:00.000+00:00", + "firstAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "backupArchive": { + "description": "Archive", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Archive ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Archive creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Archive update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "policyId": { + "type": "string", + "description": "Archive policy ID.", + "example": "did8jx6ws45jana098ab7" + }, + "size": { + "type": "integer", + "description": "Archive size in bytes. Null until the size is known.", + "format": "int32", + "example": 100000, + "nullable": true + }, + "status": { + "type": "string", + "description": "The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.", + "example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The backup start time. Null until the backup starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this archive.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this archive.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this archive should backup a single resource.", + "example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this archive should backup a single resource.", + "example": "database", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "policyId", + "status", + "migrationId", + "services", + "resources" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "policyId": "did8jx6ws45jana098ab7", + "size": 100000, + "status": "completed", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "migrationId": "did8jx6ws45jana098ab7", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "resourceId": "DB1", + "resourceType": "database" + } + }, + "dedicatedDatabaseBackup": { + "description": "Backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Backup creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID this backup belongs to.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID when the backup was created by a schedule.", + "example": "5e5ea5c16897e" + }, + "trigger": { + "type": "string", + "description": "Backup trigger. Possible values: manual, schedule.", + "example": "schedule" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup), wal (write-ahead log continuous archival).", + "example": "full" + }, + "requestedType": { + "type": "string", + "description": "Backup type that was requested. Differs from `type` when the backend could not run the requested type and took a different one instead, in which case `fallbackReason` explains why. Empty for backups taken before the requested type was recorded.", + "example": "incremental" + }, + "fallbackReason": { + "type": "string", + "description": "Why the backend ran a different backup type than the one requested. Empty when the backup ran as requested.", + "example": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls." + }, + "status": { + "type": "string", + "description": "Backup status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error), verified (integrity check passed).", + "example": "completed" + }, + "sizeBytes": { + "type": "integer", + "description": "Backup size in bytes.", + "format": "int32", + "example": 1073741824 + }, + "startedAt": { + "type": "string", + "description": "Backup start time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Backup completion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "verifiedAt": { + "type": "string", + "description": "Backup verification time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "expiresAt": { + "type": "string", + "description": "Backup expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "logPosition": { + "type": "string", + "description": "Transaction-log position the backup anchors at, in the engine's own notation: PostgreSQL `{walSegment}|{lsn}`, MySQL and MariaDB `{binlogFile}|{offset}`, MongoDB `{seconds}|{increment}`. Empty when the backup recorded no position, which is the case for backup types that carry none.", + "example": "000000010000000000000003|0\/3000148", + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message if backup failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "policyId", + "trigger", + "type", + "requestedType", + "fallbackReason", + "status", + "sizeBytes", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "policyId": "5e5ea5c16897e", + "trigger": "schedule", + "type": "full", + "requestedType": "incremental", + "fallbackReason": "PostgreSQL incremental backups are not offered because they cannot be restored: archived WAL is physical and cannot replay onto a logically-restored base. A full backup was taken instead; use a point-in-time restore (targetTime) to recover to a moment between fulls.", + "status": "completed", + "sizeBytes": 1073741824, + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "logPosition": "000000010000000000000003|0\/3000148", + "error": "" + } + }, + "dedicatedDatabaseBackupList": { + "description": "BackupList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of backups.", + "format": "int32", + "example": 5 + }, + "backups": { + "type": "array", + "description": "List of backups.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" + }, + "example": [] + } + }, + "required": [ + "total", + "backups" + ], + "example": { + "total": 5, + "backups": [] + } + }, + "dedicatedDatabaseBackupStorage": { + "description": "BackupStorageConfig", + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Storage provider. Possible values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "example": "my-backup-bucket" + }, + "region": { + "type": "string", + "description": "Storage region.", + "example": "us-east-1" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "example": "backups\/" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage.", + "example": "https:\/\/minio.example.com" + } + }, + "required": [ + "provider", + "bucket", + "region", + "prefix", + "endpoint" + ], + "example": { + "provider": "s3", + "bucket": "my-backup-bucket", + "region": "us-east-1", + "prefix": "backups\/", + "endpoint": "https:\/\/minio.example.com" + } + }, + "billingLimits": { + "description": "Limits", + "type": "object", + "properties": { + "bandwidth": { + "type": "integer", + "description": "Bandwidth limit", + "format": "int32", + "example": 5, + "nullable": true + }, + "storage": { + "type": "integer", + "description": "Storage limit", + "format": "int32", + "example": 150, + "nullable": true + }, + "users": { + "type": "integer", + "description": "Users limit", + "format": "int32", + "example": 200000, + "nullable": true + }, + "executions": { + "type": "integer", + "description": "Executions limit", + "format": "int32", + "example": 750000, + "nullable": true + }, + "GBHours": { + "type": "integer", + "description": "GBHours limit", + "format": "int32", + "example": 100, + "nullable": true + }, + "imageTransformations": { + "type": "integer", + "description": "Image transformations limit", + "format": "int32", + "example": 100, + "nullable": true + }, + "authPhone": { + "type": "integer", + "description": "Auth phone limit", + "format": "int32", + "example": 10, + "nullable": true + }, + "budgetLimit": { + "type": "integer", + "description": "Budget limit percentage", + "format": "int32", + "example": 100, + "nullable": true + } + }, + "example": { + "bandwidth": 5, + "storage": 150, + "users": 200000, + "executions": 750000, + "GBHours": 100, + "imageTransformations": 100, + "authPhone": 10, + "budgetLimit": 100 + } + }, + "billingPlan": { + "description": "billingPlan", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Plan ID.", + "example": "tier-0" + }, + "name": { + "type": "string", + "description": "Plan name", + "example": "Hobby" + }, + "desc": { + "type": "string", + "description": "Plan description", + "example": "Hobby plan" + }, + "order": { + "type": "integer", + "description": "Plan order", + "format": "int32", + "example": 0 + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 25 + }, + "trial": { + "type": "integer", + "description": "Trial days", + "format": "int32", + "example": 14 + }, + "bandwidth": { + "type": "integer", + "description": "Bandwidth", + "format": "int32", + "example": 25 + }, + "storage": { + "type": "integer", + "description": "Storage", + "format": "int32", + "example": 25 + }, + "imageTransformations": { + "type": "integer", + "description": "Image Transformations", + "format": "int32", + "example": 100 + }, + "screenshotsGenerated": { + "type": "integer", + "description": "Screenshots generated", + "format": "int32", + "example": 50 + }, + "members": { + "type": "integer", + "description": "Members", + "format": "int32", + "example": 25, + "nullable": true + }, + "webhooks": { + "type": "integer", + "description": "Webhooks", + "format": "int32", + "example": 25 + }, + "wafRules": { + "type": "integer", + "description": "Maximum WAF rules per project", + "format": "int32", + "example": 2 + }, + "projects": { + "type": "integer", + "description": "Projects", + "format": "int32", + "example": 2 + }, + "platforms": { + "type": "integer", + "description": "Platforms", + "format": "int32", + "example": 3 + }, + "users": { + "type": "integer", + "description": "Users", + "format": "int32", + "example": 25 + }, + "teams": { + "type": "integer", + "description": "Teams", + "format": "int32", + "example": 25 + }, + "databases": { + "type": "integer", + "description": "Databases", + "format": "int32", + "example": 25 + }, + "databasesReads": { + "type": "integer", + "description": "Database reads per month", + "format": "int32", + "example": 500000 + }, + "databasesWrites": { + "type": "integer", + "description": "Database writes per month", + "format": "int32", + "example": 250000 + }, + "databasesBatchSize": { + "type": "integer", + "description": "Database batch size limit", + "format": "int32", + "example": 100 + }, + "buckets": { + "type": "integer", + "description": "Buckets", + "format": "int32", + "example": 25 + }, + "fileSize": { + "type": "integer", + "description": "File size", + "format": "int32", + "example": 25 + }, + "functions": { + "type": "integer", + "description": "Functions", + "format": "int32", + "example": 25 + }, + "sites": { + "type": "integer", + "description": "Sites", + "format": "int32", + "example": 1 + }, + "executions": { + "type": "integer", + "description": "Function executions", + "format": "int32", + "example": 25 + }, + "executionsRetentionCount": { + "type": "integer", + "description": "Rolling max executions retained per function\/site", + "format": "int32", + "example": 10000 + }, + "GBHours": { + "type": "integer", + "description": "GB hours for functions", + "format": "int32", + "example": 100 + }, + "realtime": { + "type": "integer", + "description": "Realtime connections", + "format": "int32", + "example": 25 + }, + "realtimeMessages": { + "type": "integer", + "description": "Realtime messages", + "format": "int32", + "example": 100000 + }, + "messages": { + "type": "integer", + "description": "Messages per month", + "format": "int32", + "example": 1000 + }, + "topics": { + "type": "integer", + "description": "Topics for messaging", + "format": "int32", + "example": 1 + }, + "authPhone": { + "type": "integer", + "description": "SMS authentications per month", + "format": "int32", + "example": 10 + }, + "domains": { + "type": "integer", + "description": "Custom domains", + "format": "int32", + "example": 5 + }, + "activityLogs": { + "type": "integer", + "description": "Activity log days", + "format": "int32", + "example": 7, + "nullable": true + }, + "usageLogs": { + "type": "integer", + "description": "Usage history days", + "format": "int32", + "example": 30 + }, + "usageLogsIntervals": { + "type": "array", + "description": "Usage log time intervals allowed for this plan (e.g. 15m, 1h, 1d).", + "items": { + "type": "string" + }, + "example": [ + "15m", + "1h", + "1d" + ], + "nullable": true + }, + "usageAggregateOnlyMetrics": { + "type": "array", + "description": "Metrics this plan only records as a total. They cannot be broken down by dimension or filtered, because the stored events cover a fraction of the real traffic.", + "items": { + "type": "string" + }, + "example": [ + "network.requests", + "network.inbound", + "network.outbound" + ], + "nullable": true + }, + "projectInactivityDays": { + "type": "integer", + "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", + "format": "int32", + "example": 7 + }, + "alertLimit": { + "type": "integer", + "description": "Alert threshold percentage", + "format": "int32", + "example": 80 + }, + "usage": { + "type": "object", + "description": "Additional resources. Null when the plan does not support usage billing.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/usageBillingPlan" + } + ], + "nullable": true + }, + "addons": { + "type": "object", + "description": "Addons", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddon" + } + ] + }, + "budgetCapEnabled": { + "type": "boolean", + "description": "Budget cap enabled or disabled.", + "example": true + }, + "customSmtp": { + "type": "boolean", + "description": "Custom SMTP", + "example": true + }, + "emailBranding": { + "type": "boolean", + "description": "Appwrite branding in email", + "example": true + }, + "requiresPaymentMethod": { + "type": "boolean", + "description": "Does plan require payment method", + "example": true + }, + "requiresBillingAddress": { + "type": "boolean", + "description": "Does plan require billing address", + "example": true + }, + "eligibleCountries": { + "type": "array", + "description": "ISO country codes eligible for this regional plan. Empty means no restriction.", + "items": { + "type": "string" + }, + "example": [ + "IN", + "NP" + ], + "nullable": true + }, + "isAvailable": { + "type": "boolean", + "description": "Is the billing plan available", + "example": true + }, + "selfService": { + "type": "boolean", + "description": "Can user change the plan themselves", + "example": true + }, + "premiumSupport": { + "type": "boolean", + "description": "Does plan enable premium support", + "example": true + }, + "budgeting": { + "type": "boolean", + "description": "Does plan support budget cap", + "example": true + }, + "supportsMockNumbers": { + "type": "boolean", + "description": "Does plan support mock numbers", + "example": true + }, + "supportsOrganizationRoles": { + "type": "boolean", + "description": "Does plan support organization roles", + "example": true + }, + "supportsCredits": { + "type": "boolean", + "description": "Does plan support credit", + "example": true + }, + "supportsDedicatedDatabases": { + "type": "boolean", + "description": "Does plan support dedicated databases.", + "example": true + }, + "supportsDisposableEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking disposable email addresses.", + "example": true + }, + "supportsCanonicalEmailValidation": { + "type": "boolean", + "description": "Does plan support requiring canonical email addresses.", + "example": true + }, + "supportsFreeEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking free email addresses.", + "example": true + }, + "supportsCorporateEmailValidation": { + "type": "boolean", + "description": "Does plan support restricting sign-ups to corporate email addresses only.", + "example": true + }, + "supportsProjectSpecificRoles": { + "type": "boolean", + "description": "Does plan support project-specific member roles.", + "example": true + }, + "backupsEnabled": { + "type": "boolean", + "description": "Does plan support backup policies.", + "example": true, + "nullable": true + }, + "usagePerProject": { + "type": "boolean", + "description": "Whether usage addons are calculated per project.", + "example": true + }, + "supportedAddons": { + "type": "object", + "description": "Supported addons for this plan", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanSupportedAddons" + } + ] + }, + "backupPolicies": { + "type": "integer", + "description": "How many policies does plan support", + "format": "int32", + "example": 1, + "nullable": true + }, + "deploymentSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "format": "int32", + "example": 30 + }, + "buildSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "format": "int32", + "example": 2000 + }, + "databasesAllowEncrypt": { + "type": "boolean", + "description": "Does the plan support encrypted string attributes or not.", + "example": false + }, + "limits": { + "type": "object", + "description": "Plan specific limits", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanLimits" + } + ], + "nullable": true + }, + "group": { + "description": "Group of this billing plan for variants", + "example": "pro", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "free" + ], + "title": "free" + }, + { + "type": "string", + "enum": [ + "start" + ], + "title": "start" + }, + { + "type": "string", + "enum": [ + "pro" + ], + "title": "pro" + }, + { + "type": "string", + "enum": [ + "scale" + ], + "title": "scale" + } + ] + }, + "program": { + "type": "object", + "description": "Details of the program this plan is a part of.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/program" + } + ], + "nullable": true + }, + "databaseComputeCredit": { + "type": "number", + "description": "Included monthly dedicated-database compute credit in USD. Resets each billing cycle with no roll-over.", + "format": "double", + "example": 10 + }, + "dedicatedDatabases": { + "type": "object", + "description": "Dedicated database limits available to this plan.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanDedicatedDatabaseLimits" + } + ], + "nullable": true + } + }, + "required": [ + "$id", + "name", + "desc", + "order", + "price", + "trial", + "bandwidth", + "storage", + "imageTransformations", + "screenshotsGenerated", + "webhooks", + "wafRules", + "projects", + "platforms", + "users", + "teams", + "databases", + "databasesReads", + "databasesWrites", + "databasesBatchSize", + "buckets", + "fileSize", + "functions", + "sites", + "executions", + "executionsRetentionCount", + "GBHours", + "realtime", + "realtimeMessages", + "messages", + "topics", + "authPhone", + "domains", + "usageLogs", + "projectInactivityDays", + "alertLimit", + "addons", + "budgetCapEnabled", + "customSmtp", + "emailBranding", + "requiresPaymentMethod", + "requiresBillingAddress", + "isAvailable", + "selfService", + "premiumSupport", + "budgeting", + "supportsMockNumbers", + "supportsOrganizationRoles", + "supportsCredits", + "supportsDedicatedDatabases", + "supportsDisposableEmailValidation", + "supportsCanonicalEmailValidation", + "supportsFreeEmailValidation", + "supportsCorporateEmailValidation", + "supportsProjectSpecificRoles", + "usagePerProject", + "supportedAddons", + "deploymentSize", + "buildSize", + "databasesAllowEncrypt", + "group", + "databaseComputeCredit" + ], + "example": { + "$id": "tier-0", + "name": "Hobby", + "desc": "Hobby plan", + "order": 0, + "price": 25, + "trial": 14, + "bandwidth": 25, + "storage": 25, + "imageTransformations": 100, + "screenshotsGenerated": 50, + "members": 25, + "webhooks": 25, + "wafRules": 2, + "projects": 2, + "platforms": 3, + "users": 25, + "teams": 25, + "databases": 25, + "databasesReads": 500000, + "databasesWrites": 250000, + "databasesBatchSize": 100, + "buckets": 25, + "fileSize": 25, + "functions": 25, + "sites": 1, + "executions": 25, + "executionsRetentionCount": 10000, + "GBHours": 100, + "realtime": 25, + "realtimeMessages": 100000, + "messages": 1000, + "topics": 1, + "authPhone": 10, + "domains": 5, + "activityLogs": 7, + "usageLogs": 30, + "usageLogsIntervals": [ + "15m", + "1h", + "1d" + ], + "usageAggregateOnlyMetrics": [ + "network.requests", + "network.inbound", + "network.outbound" + ], + "projectInactivityDays": 7, + "alertLimit": 80, + "usage": null, + "addons": null, + "budgetCapEnabled": true, + "customSmtp": true, + "emailBranding": true, + "requiresPaymentMethod": true, + "requiresBillingAddress": true, + "eligibleCountries": [ + "IN", + "NP" + ], + "isAvailable": true, + "selfService": true, + "premiumSupport": true, + "budgeting": true, + "supportsMockNumbers": true, + "supportsOrganizationRoles": true, + "supportsCredits": true, + "supportsDedicatedDatabases": true, + "supportsDisposableEmailValidation": true, + "supportsCanonicalEmailValidation": true, + "supportsFreeEmailValidation": true, + "supportsCorporateEmailValidation": true, + "supportsProjectSpecificRoles": true, + "backupsEnabled": true, + "usagePerProject": true, + "supportedAddons": null, + "backupPolicies": 1, + "deploymentSize": 30, + "buildSize": 2000, + "databasesAllowEncrypt": false, + "limits": null, + "group": "pro", + "program": null, + "databaseComputeCredit": 10, + "dedicatedDatabases": null + } + }, + "billingPlanAddon": { + "description": "Addon", + "type": "object", + "properties": { + "seats": { + "type": "object", + "description": "Addon seats", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } + ], + "nullable": true + }, + "projects": { + "type": "object", + "description": "Addon projects", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } + ], + "nullable": true + } + }, + "example": { + "seats": null, + "projects": null + } + }, + "billingPlanAddonDetails": { + "description": "Details", + "type": "object", + "properties": { + "supported": { + "type": "boolean", + "description": "Is the addon supported in the plan?", + "example": true + }, + "planIncluded": { + "type": "integer", + "description": "Addon plan included value", + "format": "int32", + "example": 1 + }, + "limit": { + "type": "integer", + "description": "Addon limit", + "format": "int32", + "example": 5 + }, + "type": { + "type": "string", + "description": "Addon type", + "example": "numeric" + }, + "currency": { + "type": "string", + "description": "Price currency", + "example": "USD", + "nullable": true + }, + "price": { + "type": "number", + "description": "Price", + "format": "double", + "example": 5 + }, + "value": { + "type": "integer", + "description": "Resource value", + "format": "int32", + "example": 25 + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "example": "" + } + }, + "required": [ + "supported", + "planIncluded", + "limit", + "type", + "price", + "value", + "invoiceDesc" + ], + "example": { + "supported": true, + "planIncluded": 1, + "limit": 5, + "type": "numeric", + "currency": "USD", + "price": 5, + "value": 25, + "invoiceDesc": "" + } + }, + "billingPlanLimits": { + "description": "PlanLimits", + "type": "object", + "properties": { + "credits": { + "type": "integer", + "description": "Credits limit per billing cycle", + "format": "int32", + "example": 100, + "nullable": true + }, + "dailyCredits": { + "type": "integer", + "description": "Daily credits limit (if applicable)", + "format": "int32", + "example": 5, + "nullable": true + } + }, + "example": { + "credits": 100, + "dailyCredits": 5 + } + }, + "billingPlanDedicatedDatabaseLimits": { + "description": "dedicatedDatabaseLimits", + "type": "object", + "properties": { + "minCpu": { + "type": "integer", + "description": "Minimum CPU allocation in millicores.", + "format": "int32", + "example": 125, + "nullable": true + }, + "maxCpu": { + "type": "integer", + "description": "Maximum CPU allocation in millicores.", + "format": "int32", + "example": 32000, + "nullable": true + }, + "minMemoryMb": { + "type": "integer", + "description": "Minimum memory allocation in megabytes.", + "format": "int32", + "example": 128, + "nullable": true + }, + "maxMemoryMb": { + "type": "integer", + "description": "Maximum memory allocation in megabytes.", + "format": "int32", + "example": 262144, + "nullable": true + }, + "minStorageGb": { + "type": "integer", + "description": "Minimum storage allocation in gigabytes.", + "format": "int32", + "example": 1, + "nullable": true + }, + "maxStorageGb": { + "type": "integer", + "description": "Maximum storage allocation in gigabytes.", + "format": "int32", + "example": 16384, + "nullable": true + }, + "maxReplicas": { + "type": "integer", + "description": "Maximum number of high-availability replicas per dedicated database.", + "format": "int32", + "example": 5, + "nullable": true + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of client connections.", + "format": "int32", + "example": 10000, + "nullable": true + }, + "maxIpAllowlistSize": { + "type": "integer", + "description": "Maximum number of entries allowed in the IP allowlist.", + "format": "int32", + "example": 100, + "nullable": true + }, + "maxExtensions": { + "type": "integer", + "description": "Maximum number of database extensions that can be enabled.", + "format": "int32", + "example": 50, + "nullable": true + }, + "maxBackupRetentionDays": { + "type": "integer", + "description": "Maximum number of days a backup can be retained.", + "format": "int32", + "example": 365, + "nullable": true + }, + "maxPitrRetentionDays": { + "type": "integer", + "description": "Maximum number of days of point-in-time recovery data that can be retained.", + "format": "int32", + "example": 35, + "nullable": true + }, + "maxSqlApiMaxRows": { + "type": "integer", + "description": "Maximum number of rows a single SQL API query can return.", + "format": "int32", + "example": 1000000, + "nullable": true + }, + "maxSqlApiMaxBytes": { + "type": "integer", + "description": "Maximum response size in bytes for a single SQL API query.", + "format": "int32", + "example": 104857600, + "nullable": true + }, + "maxSqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum execution time in seconds for a single SQL API query.", + "format": "int32", + "example": 300, + "nullable": true + }, + "maxSqlApiAllowedStatements": { + "type": "integer", + "description": "Maximum number of SQL statement types that can be permitted through the SQL API.", + "format": "int32", + "example": 10, + "nullable": true + }, + "allowedSqlStatements": { + "type": "array", + "description": "SQL statement types permitted through the SQL API.", + "items": { + "type": "string" + }, + "example": [ + "select", + "insert", + "update", + "delete", + "explain" + ], + "nullable": true + }, + "allowedStorageClasses": { + "type": "array", + "description": "Storage classes available for dedicated databases.", + "items": { + "type": "string" + }, + "example": [ + "ssd" + ], + "nullable": true + }, + "allowedSyncModes": { + "type": "array", + "description": "Replica synchronization modes available for dedicated databases.", + "items": { + "type": "string" + }, + "example": [ + "async", + "sync", + "quorum" + ], + "nullable": true + } + }, + "example": { + "minCpu": 125, + "maxCpu": 32000, + "minMemoryMb": 128, + "maxMemoryMb": 262144, + "minStorageGb": 1, + "maxStorageGb": 16384, + "maxReplicas": 5, + "maxConnections": 10000, + "maxIpAllowlistSize": 100, + "maxExtensions": 50, + "maxBackupRetentionDays": 365, + "maxPitrRetentionDays": 35, + "maxSqlApiMaxRows": 1000000, + "maxSqlApiMaxBytes": 104857600, + "maxSqlApiTimeoutSeconds": 300, + "maxSqlApiAllowedStatements": 10, + "allowedSqlStatements": [ + "select", + "insert", + "update", + "delete", + "explain" + ], + "allowedStorageClasses": [ + "ssd" + ], + "allowedSyncModes": [ + "async", + "sync", + "quorum" + ] + } + }, + "billingPlanSupportedAddons": { + "description": "BillingPlanSupportedAddons", + "type": "object", + "properties": { + "baa": { + "type": "boolean", + "description": "Whether the plan supports BAA (Business Associate Agreement) addon", + "example": true + }, + "premiumGeoDB": { + "type": "boolean", + "description": "Whether the plan supports Premium Geo DB addon (project-level)", + "example": true + }, + "premiumGeoDBOrg": { + "type": "boolean", + "description": "Whether the plan supports Premium Geo DB addon (organization-level)", + "example": true + } + }, + "required": [ + "baa", + "premiumGeoDB", + "premiumGeoDBOrg" + ], + "example": { + "baa": true, + "premiumGeoDB": true, + "premiumGeoDBOrg": true + } + }, + "block": { + "description": "Block", + "type": "object", + "properties": { + "$createdAt": { + "type": "string", + "description": "Block creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "Resource type that is blocked", + "example": "project" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier that is blocked", + "example": "5e5ea5c16897e" + }, + "mode": { + "type": "string", + "description": "Block mode. full blocks reads and writes; readOnly blocks writes only.", + "example": "readOnly" + }, + "expiredAt": { + "type": "string", + "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "mode" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "mode": "readOnly", + "expiredAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "dedicatedDatabaseBranch": { + "description": "Branch", + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch identifier.", + "example": "a1b2c3d4" + }, + "branchName": { + "type": "string", + "description": "Branch name.", + "example": "branch-a1b2c3d4" + }, + "namespace": { + "type": "string", + "description": "Kubernetes namespace where the branch is deployed.", + "example": "db-myproject-mydb-branch-a1b2c3d4" + }, + "expiresAt": { + "type": "integer", + "description": "Unix timestamp when the branch expires.", + "format": "int32", + "example": 1711411200 + }, + "host": { + "type": "string", + "description": "Branch hostname for direct connections.", + "example": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center" + }, + "port": { + "type": "integer", + "description": "Branch port. Null until the backing reports one.", + "format": "int32", + "example": 5432, + "nullable": true + }, + "database": { + "type": "string", + "description": "Advertised catalog the client connects to. MySQL\/MariaDB use default; Postgres uses the routing label.", + "example": "db-myproject-mydb-a1b2c3d4" + }, + "username": { + "type": "string", + "description": "Database username. Shared with the parent database.", + "example": "appwrite" + }, + "password": { + "type": "string", + "description": "Database password. Shared with the parent database.", + "example": "********" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL is required.", + "example": false + }, + "engine": { + "type": "string", + "description": "Database engine. Possible values: postgresql, mysql, mongodb.", + "example": "postgresql" + }, + "connectionString": { + "type": "string", + "description": "Full connection string for the branch.", + "example": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" + } + }, + "required": [ + "branchId", + "branchName", + "namespace", + "expiresAt", + "host", + "database", + "username", + "password", + "ssl", + "engine", + "connectionString" + ], + "example": { + "branchId": "a1b2c3d4", + "branchName": "branch-a1b2c3d4", + "namespace": "db-myproject-mydb-branch-a1b2c3d4", + "expiresAt": 1711411200, + "host": "db-myproject-mydb-a1b2c3d4.fra.appwrite.center", + "port": 5432, + "database": "db-myproject-mydb-a1b2c3d4", + "username": "appwrite", + "password": "********", + "ssl": false, + "engine": "postgresql", + "connectionString": "postgresql:\/\/appwrite:****@db-myproject-mydb-a1b2c3d4.fra.appwrite.center:5432\/db-myproject-mydb-a1b2c3d4?sslmode=require" + } + }, + "dedicatedDatabaseBranchList": { + "description": "BranchList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of branches.", + "format": "int32", + "example": 2 + }, + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranch" + }, + "example": [] + } + }, + "required": [ + "total", + "branches" + ], + "example": { + "total": 2, + "branches": [] + } + }, + "databaseMigration": { + "description": "Database Migration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database migration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Migration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Migration update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns the migrating database.", + "example": "5e5ea5c16897e" + }, + "databaseId": { + "type": "string", + "description": "Logical database ID being migrated.", + "example": "5e5ea5c16897e" + }, + "specification": { + "type": "string", + "description": "Dedicated compute specification provisioned for the migration target.", + "example": "s-2vcpu-4gb" + }, + "phase": { + "type": "string", + "description": "Migration phase. Possible values: pending, provisioned, capturing, backfilling, catching_up, verifying, ready_to_cutover, cutover, soaking, done, failed, rolled_back.", + "example": "pending" + }, + "attempt": { + "type": "integer", + "description": "Number of times a migration step has failed and been recorded.", + "format": "int32", + "example": 0 + }, + "lastError": { + "type": "string", + "description": "Reason the most recent migration step failed, empty while none has.", + "example": "" + }, + "lagDocuments": { + "type": "integer", + "description": "Number of documents still pending replication to the target.", + "format": "int32", + "example": 0 + }, + "changelogWatermark": { + "type": "integer", + "description": "Highest source changelog sequence applied to the target so far.", + "format": "int32", + "example": 0 + }, + "verifiedAt": { + "type": "string", + "description": "Time the migrated data was verified against the source in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "cutoverAt": { + "type": "string", + "description": "Time routing was flipped to the target in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "soakUntil": { + "type": "string", + "description": "Time the post-cutover soak window ends in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "autoCutover": { + "type": "boolean", + "description": "Whether the migration cuts over automatically once ready. Set when the migration is created and never changed afterwards, so it always reports what was asked for.", + "example": true + }, + "cutoverRequested": { + "type": "boolean", + "description": "Whether a cutover has been requested and not yet attempted. Set by the cutover endpoint and cleared when the attempt is made, so a cutover that fails a check parks the migration again rather than retrying on its own.", + "example": false + }, + "paused": { + "type": "boolean", + "description": "Whether the migration is paused.", + "example": false + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "databaseId", + "specification", + "phase", + "attempt", + "lastError", + "lagDocuments", + "changelogWatermark", + "verifiedAt", + "cutoverAt", + "soakUntil", + "autoCutover", + "cutoverRequested", + "paused" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "databaseId": "5e5ea5c16897e", + "specification": "s-2vcpu-4gb", + "phase": "pending", + "attempt": 0, + "lastError": "", + "lagDocuments": 0, + "changelogWatermark": 0, + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "cutoverAt": "2020-10-15T06:38:00.000+00:00", + "soakUntil": "2020-10-15T06:38:00.000+00:00", + "autoCutover": true, + "cutoverRequested": false, + "paused": false + } + }, + "dedicatedDatabase": { + "description": "DedicatedDatabase", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Dedicated database ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Database creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns this database.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database display name.", + "example": "My Production Database" + }, + "api": { + "type": "string", + "description": "Product API that owns this database: tablesdb, documentsdb, vectorsdb, mysql, postgresql, or mongodb.", + "example": "postgresql", + "nullable": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, or mongodb. Null until the backing reports one.", + "example": "postgresql", + "nullable": true + }, + "version": { + "type": "string", + "description": "Database engine version.", + "example": "16" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "example": "s-2vcpu-2gb" + }, + "backend": { + "type": "string", + "description": "Database backend provider. Possible values: edge.", + "example": "edge" + }, + "hostname": { + "type": "string", + "description": "Database hostname for connections.", + "example": "db-myproject-mydb.fra.appwrite.center" + }, + "connectionPort": { + "type": "integer", + "description": "Database port for connections. Derived from the engine when the backing has not reported one yet.", + "format": "int32", + "example": 5432, + "nullable": true + }, + "connectionUser": { + "type": "string", + "description": "Database username for connections.", + "example": "appwrite_user" + }, + "connectionPassword": { + "type": "string", + "description": "Database password for connections.", + "example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" + }, + "credentialGeneration": { + "type": "integer", + "description": "Committed generation of the primary connection credentials. Null until the rotation contract has been initialized.", + "format": "int32", + "example": 1, + "nullable": true + }, + "connectionString": { + "type": "string", + "description": "Full database connection string (URI format).", + "example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL\/TLS is required for client connections.", + "example": true + }, + "status": { + "type": "string", + "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", + "example": "ready" + }, + "containerStatus": { + "type": "string", + "description": "Container status for lifecycle-managed database runtimes: active, inactive, or failed (a wake was declined because the backing namespace is gone).", + "example": "active" + }, + "lastAccessedAt": { + "type": "string", + "description": "Last activity timestamp in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "idleUntil": { + "type": "string", + "description": "Display-only timestamp when the database is expected to be considered idle (ISO 8601 format). Derived from last activity; lifecycle transitions are driven by lifecycleState.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "lifecycleState": { + "type": "string", + "description": "Idle-lifecycle state of the database. Possible values: active, warm, cold, hibernated.", + "example": "active" + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "format": "int32", + "example": 15 + }, + "cpu": { + "type": "integer", + "description": "CPU allocated in millicores.", + "format": "int32", + "example": 2000 + }, + "memory": { + "type": "integer", + "description": "Memory allocated in MB.", + "format": "int32", + "example": 4096 + }, + "storage": { + "type": "integer", + "description": "Storage allocated in GB.", + "format": "int32", + "example": 100 + }, + "storageStatus": { + "type": "string", + "description": "Storage resize status. Possible values: idle (no resize in flight), resizing (the volume is growing towards storageTargetGb).", + "example": "resizing" + }, + "storageTargetGb": { + "type": "integer", + "description": "Size in GB the volume is growing towards while storageStatus is resizing. 0 when no resize is in flight.", + "format": "int32", + "example": 120 + }, + "storageResizeStartedAt": { + "type": "string", + "description": "Time the in-flight storage resize started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "storageClass": { + "type": "string", + "description": "Storage class. Currently always 'ssd'; DigitalOcean exposes a single block-storage class.", + "example": "ssd" + }, + "storageMaxGb": { + "type": "integer", + "description": "Maximum storage allowed in GB. 0 means use system default.", + "format": "int32", + "example": 100 + }, + "nodePool": { + "type": "string", + "description": "Kubernetes node pool where the database is scheduled.", + "example": "db-pool-4vcpu-8gb" + }, + "replicas": { + "type": "integer", + "description": "Number of high availability replicas. High availability is enabled when greater than 0.", + "format": "int32", + "example": 2 + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode: async, sync, or quorum.", + "example": "async" + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent client connections. This is the limit a client pool may reach; the engine's own max_connections reported by the status endpoint is a smaller backend limit the pooler multiplexes onto and does not constrain a client pool.", + "format": "int32", + "example": 500 + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "format": "int32", + "example": 900 + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "items": { + "type": "string" + }, + "example": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ] + }, + "backupEnabled": { + "type": "boolean", + "description": "Whether automatic backups are enabled.", + "example": true + }, + "pitr": { + "type": "boolean", + "description": "Whether point-in-time recovery is enabled.", + "example": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "format": "int32", + "example": 14 + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Whether automatic storage expansion is enabled.", + "example": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage that triggers automatic expansion.", + "format": "int32", + "example": 85 + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. Defaults to 3 times the specification's storage. 0 means no limit.", + "format": "int32", + "example": 30 + }, + "maintenanceWindowDay": { + "type": "string", + "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", + "example": "sun" + }, + "maintenanceWindowHourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) when the maintenance window starts.", + "format": "int32", + "example": 3 + }, + "metricsEnabled": { + "type": "boolean", + "description": "Whether metrics collection is enabled.", + "example": false + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Whether the SQL API sidecar is enabled for this database.", + "example": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types accepted by the SQL API. Defaults to read\/write DML only; DDL\/DCL types (CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE) are opt-in per database. Allowed values: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, TRUNCATE, GRANT, REVOKE.", + "items": { + "type": "string" + }, + "example": [ + "SELECT" + ] + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", + "format": "int32", + "example": 10000 + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", + "format": "int32", + "example": 10485760 + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", + "format": "int32", + "example": 30 + }, + "error": { + "type": "string", + "description": "Error message if status is failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "name", + "version", + "specification", + "backend", + "hostname", + "connectionUser", + "connectionPassword", + "connectionString", + "ssl", + "status", + "containerStatus", + "lifecycleState", + "idleTimeoutMinutes", + "cpu", + "memory", + "storage", + "storageStatus", + "storageTargetGb", + "storageClass", + "storageMaxGb", + "nodePool", + "replicas", + "syncMode", + "networkMaxConnections", + "networkIdleTimeoutSeconds", + "networkIPAllowlist", + "backupEnabled", + "pitr", + "pitrRetentionDays", + "storageAutoscaling", + "storageAutoscalingThresholdPercent", + "storageAutoscalingMaxGb", + "maintenanceWindowDay", + "maintenanceWindowHourUtc", + "metricsEnabled", + "sqlApiEnabled", + "sqlApiAllowedStatements", + "sqlApiMaxRows", + "sqlApiMaxBytes", + "sqlApiTimeoutSeconds", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "name": "My Production Database", + "api": "postgresql", + "engine": "postgresql", + "version": "16", + "specification": "s-2vcpu-2gb", + "backend": "edge", + "hostname": "db-myproject-mydb.fra.appwrite.center", + "connectionPort": 5432, + "connectionUser": "appwrite_user", + "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", + "credentialGeneration": 1, + "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.center:5432\/postgres?sslmode=require", + "ssl": true, + "status": "ready", + "containerStatus": "active", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00", + "idleUntil": "2020-10-15T06:38:00.000+00:00", + "lifecycleState": "active", + "idleTimeoutMinutes": 15, + "cpu": 2000, + "memory": 4096, + "storage": 100, + "storageStatus": "resizing", + "storageTargetGb": 120, + "storageResizeStartedAt": "2020-10-15T06:38:00.000+00:00", + "storageClass": "ssd", + "storageMaxGb": 100, + "nodePool": "db-pool-4vcpu-8gb", + "replicas": 2, + "syncMode": "async", + "networkMaxConnections": 500, + "networkIdleTimeoutSeconds": 900, + "networkIPAllowlist": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ], + "backupEnabled": true, + "pitr": true, + "pitrRetentionDays": 14, + "storageAutoscaling": true, + "storageAutoscalingThresholdPercent": 85, + "storageAutoscalingMaxGb": 30, + "maintenanceWindowDay": "sun", + "maintenanceWindowHourUtc": 3, + "metricsEnabled": false, + "sqlApiEnabled": true, + "sqlApiAllowedStatements": "SELECT", + "sqlApiMaxRows": 10000, + "sqlApiMaxBytes": 10485760, + "sqlApiTimeoutSeconds": 30, + "error": "" + } + }, + "dedicatedDatabaseExecution": { + "description": "Execution", + "type": "object", + "properties": { + "rows": { + "type": "array", + "description": "Result rows as a list of column-name => value maps. Empty for non-returning statements.", + "items": { + "type": "object" + }, + "example": [ + { + "id": 1, + "name": "example" + } + ] + }, + "rowCount": { + "type": "integer", + "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", + "format": "int32", + "example": 1 + }, + "columns": { + "type": "array", + "description": "Column metadata in result-set order.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecutionColumn" + }, + "example": [] + }, + "durationMs": { + "type": "integer", + "description": "Server-side execution time in milliseconds.", + "format": "int32", + "example": 12 + }, + "truncated": { + "type": "boolean", + "description": "True when the configured row or byte cap was hit and the result was truncated.", + "example": false + }, + "bytes": { + "type": "integer", + "description": "Serialised payload size in bytes.", + "format": "int32", + "example": 1024 + } + }, + "required": [ + "rows", + "rowCount", + "columns", + "durationMs", + "truncated", + "bytes" + ], + "example": { + "rows": [ + { + "id": 1, + "name": "example" + } + ], + "rowCount": 1, + "columns": [], + "durationMs": 12, + "truncated": false, + "bytes": 1024 + } + }, + "dedicatedDatabaseExecutionColumn": { + "description": "ExecutionColumn", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Column name as returned by the database.", + "example": "id" + }, + "type": { + "type": "string", + "description": "Engine-specific column type (e.g. int4, text, timestamptz).", + "example": "int4" + } + }, + "required": [ + "name", + "type" + ], + "example": { + "name": "id", + "type": "int4" + } + }, + "dedicatedDatabaseRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID being restored into.", + "example": "5e5ea5c16897e" + }, + "sourceDatabaseId": { + "type": "string", + "description": "Source database ID when restoring a backup into another database.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "backupId": { + "type": "string", + "description": "Backup ID used for restoration (null for PITR).", + "example": "5e5ea5c16897e", + "nullable": true + }, + "type": { + "type": "string", + "description": "Restoration type. Possible values: backup (restore from a specific backup snapshot), pitr (point-in-time recovery to a specific timestamp).", + "example": "backup" + }, + "status": { + "type": "string", + "description": "Restoration status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error).", + "example": "completed" + }, + "targetTime": { + "type": "string", + "description": "Target time for PITR restoration in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "startedAt": { + "type": "string", + "description": "Restoration start time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Restoration completion time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "error": { + "type": "string", + "description": "Error message if restoration failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "type", + "status", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "sourceDatabaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "backupId": "5e5ea5c16897e", + "type": "backup", + "status": "completed", + "targetTime": "2020-10-15T06:38:00.000+00:00", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "error": "" + } + }, + "databaseStatus": { + "description": "Status", + "type": "object", + "properties": { + "health": { + "type": "string", + "description": "Overall health status: healthy, degraded, unhealthy, or unknown when nothing could be measured.", + "example": "healthy" + }, + "ready": { + "type": "boolean", + "description": "Whether the database is ready to accept connections.", + "example": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgresql, mysql, or mongodb.", + "example": "postgresql" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "example": "17" + }, + "uptime": { + "type": "integer", + "description": "Database uptime in seconds.", + "format": "int32", + "example": 86400 + }, + "connections": { + "type": "object", + "description": "Connection statistics. Null when the database has not been probed.", + "example": { + "current": 12, + "max": 100 + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/databaseStatusConnections" + } + ], + "nullable": true + }, + "syncMode": { + "type": "string", + "description": "Requested replication sync mode. Possible values: async, sync, quorum. Compare with effectiveSyncMode for what the primary is enforcing.", + "example": "async" + }, + "effectiveSyncMode": { + "type": "string", + "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read.", + "example": "async", + "nullable": true + }, + "syncDegraded": { + "type": "boolean", + "description": "Whether the enforced replication is weaker than the requested syncMode.", + "example": false + }, + "syncAcknowledgements": { + "type": "integer", + "description": "Number of standby acknowledgements the primary waits for before a write is committed.", + "format": "int32", + "example": 1 + }, + "syncStandbyCount": { + "type": "integer", + "description": "Number of standbys registered with the primary for synchronous replication.", + "format": "int32", + "example": 2 + }, + "syncStateConfirmed": { + "type": "boolean", + "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", + "example": true, + "nullable": true + }, + "replicas": { + "type": "array", + "description": "List of database replicas and their status. Every configured member appears, including one the backend has not brought up, which is reported as not healthy.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusReplica" + }, + "example": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": null, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + ] + }, + "volumes": { + "type": "array", + "description": "Storage volume information.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusVolume" + }, + "example": [ + { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + ] + } + }, + "required": [ + "health", + "ready", + "engine", + "version", + "uptime", + "syncMode", + "syncDegraded", + "syncAcknowledgements", + "syncStandbyCount", + "replicas", + "volumes" + ], + "example": { + "health": "healthy", + "ready": true, + "engine": "postgresql", + "version": "17", + "uptime": 86400, + "connections": { + "current": 12, + "max": 100 + }, + "syncMode": "async", + "effectiveSyncMode": "async", + "syncDegraded": false, + "syncAcknowledgements": 1, + "syncStandbyCount": 2, + "syncStateConfirmed": true, + "replicas": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": null, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + ], + "volumes": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } + } + }, + "dnsRecord": { + "description": "DNSRecord", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "DNS Record ID.", + "example": "5f40a6e10c65e" + }, + "$createdAt": { + "type": "string", + "description": "DNS Record creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "DNS Record update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "type": { + "type": "string", + "description": "DNS record type (e.g. A, CNAME, MX).", + "example": "A" + }, + "name": { + "type": "string", + "description": "Record name or subdomain.", + "example": "mail" + }, + "value": { + "type": "string", + "description": "Value of the record (IP address, domain, etc.).", + "example": "192.0.2.1" + }, + "ttl": { + "type": "integer", + "description": "Time to live (in seconds).", + "format": "int32", + "example": 86400 + }, + "priority": { + "type": "integer", + "description": "Record priority (commonly used for MX).", + "format": "int32", + "example": 10 + }, + "lock": { + "type": "boolean", + "description": "Whether this record is locked (read-only).", + "example": false + }, + "weight": { + "type": "integer", + "description": "Record weight (used for SRV records).", + "format": "int32", + "example": 10 + }, + "port": { + "type": "integer", + "description": "Target port (used for SRV records).", + "format": "int32", + "example": 443 + }, + "comment": { + "type": "string", + "description": "Comment for the DNS record.", + "example": "Mail server record" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "type", + "name", + "value", + "ttl", + "priority", + "lock", + "weight", + "port", + "comment" + ], + "example": { + "$id": "5f40a6e10c65e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "type": "A", + "name": "mail", + "value": "192.0.2.1", + "ttl": 86400, + "priority": 10, + "lock": false, + "weight": 10, + "port": 443, + "comment": "Mail server record" + } + }, + "domain": { + "description": "Domain", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Domain ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Domain creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Domain update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "registrar": { + "type": "string", + "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", + "example": "appwrite" + }, + "nameservers": { + "type": "string", + "description": "Nameservers setting. \"Appwrite\" or empty string.", + "example": "Appwrite" + }, + "expire": { + "type": "string", + "description": "Domain expiry date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "renewal": { + "type": "string", + "description": "Domain renewal date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "autoRenewal": { + "type": "boolean", + "description": "If set to true, the domain will automatically renew.", + "example": true + }, + "renewalPrice": { + "type": "integer", + "description": "Renewal price (in cents).", + "format": "int32", + "example": 2599 + }, + "transferStatus": { + "description": "Transfer status for domains being transferred in. Null when the domain is not being transferred.", + "example": "pending_registry", + "title": "DomainTransferStatusEnum", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "transferrable" + ], + "title": "transferrable" + }, + { + "type": "string", + "enum": [ + "not_transferrable" + ], + "title": "not_transferrable" + }, + { + "type": "string", + "enum": [ + "pending_owner" + ], + "title": "pending_owner" + }, + { + "type": "string", + "enum": [ + "pending_admin" + ], + "title": "pending_admin" + }, + { + "type": "string", + "enum": [ + "pending_registry" + ], + "title": "pending_registry" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + }, + { + "type": "string", + "enum": [ + "service_unavailable" + ], + "title": "service_unavailable" + } + ], + "nullable": true + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "dnsRecords": { + "type": "array", + "description": "Dns records", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domain", + "registrar", + "nameservers", + "expire", + "renewal", + "autoRenewal", + "renewalPrice", + "teamId", + "dnsRecords" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domain": "example.com", + "registrar": "appwrite", + "nameservers": "Appwrite", + "expire": "2020-10-15T06:38:00.000+00:00", + "renewal": "2020-10-15T06:38:00.000+00:00", + "autoRenewal": true, + "renewalPrice": 2599, + "transferStatus": "pending_registry", + "teamId": "5e5ea5c16897e", + "dnsRecords": [] + } + }, + "domainPrice": { + "description": "DomainPrice", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "example": "example.com" + }, + "tld": { + "type": "string", + "description": "Top-level domain for the requested domain.", + "example": "com" + }, + "available": { + "type": "boolean", + "description": "Whether the domain is currently available for registration.", + "example": true + }, + "price": { + "type": "number", + "description": "Domain registration price. Null when the price could not be resolved, for example for an unsupported TLD.", + "format": "double", + "example": 25.99, + "nullable": true + }, + "periodYears": { + "type": "integer", + "description": "Price period in years.", + "format": "int32", + "example": 1 + }, + "premium": { + "type": "boolean", + "description": "Whether the domain is a premium domain.", + "example": false + }, + "renewalPrice": { + "type": "number", + "description": "Domain renewal price for the same period. Null when the domain was not priced or the registrar has no renewal price for it.", + "format": "double", + "example": 27.99, + "nullable": true + }, + "renewalPeriodYears": { + "type": "integer", + "description": "Renewal price period in years.", + "format": "int32", + "example": 1 + } + }, + "required": [ + "domain", + "tld", + "available", + "periodYears", + "premium", + "renewalPeriodYears" + ], + "example": { + "domain": "example.com", + "tld": "com", + "available": true, + "price": 25.99, + "periodYears": 1, + "premium": false, + "renewalPrice": 27.99, + "renewalPeriodYears": 1 + } + }, + "domainTransferStatus": { + "description": "domainTransferStatus", + "type": "object", + "properties": { + "status": { + "description": "Transfer status.", + "example": "pending_registry", + "title": "DomainTransferStatusEnum", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "transferrable" + ], + "title": "transferrable" + }, + { + "type": "string", + "enum": [ + "not_transferrable" + ], + "title": "not_transferrable" + }, + { + "type": "string", + "enum": [ + "pending_owner" + ], + "title": "pending_owner" + }, + { + "type": "string", + "enum": [ + "pending_admin" + ], + "title": "pending_admin" + }, + { + "type": "string", + "enum": [ + "pending_registry" + ], + "title": "pending_registry" + }, + { + "type": "string", + "enum": [ + "completed" + ], + "title": "completed" + }, + { + "type": "string", + "enum": [ + "cancelled" + ], + "title": "cancelled" + }, + { + "type": "string", + "enum": [ + "service_unavailable" + ], + "title": "service_unavailable" + } + ] + }, + "reason": { + "type": "string", + "description": "Additional transfer status information.", + "example": "Transfer in progress" + }, + "timestamp": { + "type": "string", + "description": "Transfer status timestamp in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "status", + "reason", + "timestamp" + ], + "example": { + "status": "pending_registry", + "reason": "Transfer in progress", + "timestamp": "2020-10-15T06:38:00.000+00:00" + } + }, + "dedicatedDatabaseExtensions": { + "description": "Extensions", + "type": "object", + "properties": { + "installed": { + "type": "array", + "description": "List of installed extensions.", + "items": { + "type": "string" + }, + "example": [ + "pgvector", + "uuid-ossp" + ] + }, + "available": { + "type": "array", + "description": "List of available extensions that can be installed.", + "items": { + "type": "string" + }, + "example": [ + "postgis", + "pg_trgm" + ] + }, + "metadata": { + "type": "array", + "description": "Curated metadata (display name, description, category) for each available extension.", + "items": { + "$ref": "#\/components\/schemas\/postgresExtension" + }, + "example": [] + } + }, + "required": [ + "installed", + "available", + "metadata" + ], + "example": { + "installed": [ + "pgvector", + "uuid-ossp" + ], + "available": [ + "postgis", + "pg_trgm" + ], + "metadata": [] + } + }, + "dedicatedDatabaseMember": { + "description": "Member", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Member identifier.", + "example": "1" + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology and this member has not been probed, so no member can be named the write target).", + "example": "replica" + }, + "status": { + "type": "string", + "description": "Member pod status. Possible values: pending (configured but absent from the backend topology, so nothing is bringing it up), provisioning (pod missing or Pending), starting (Running but not Ready), active (Running and Ready), failed (Failed phase or CrashLoopBackOff container), or the lowercased pod phase reported by the cluster.", + "example": "active" + }, + "replicating": { + "type": "boolean", + "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not active, or whose probe did not answer, has none yet. False is a reading and null is the absence of one, so the two are not interchangeable. Read it beside lagSeconds before expecting a failover that names no target to find a promotable standby: a member streaming at a known lag is one, and a member reporting null is not evidence either way.", + "example": true, + "nullable": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds. Null when the lag is not known: a primary has none to report, and a member the backend has not probed has none yet. Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", + "format": "double", + "example": 0.5, + "nullable": true + } + }, + "required": [ + "$id", + "role", + "status" + ], + "example": { + "$id": "1", + "role": "replica", + "status": "active", + "replicating": true, + "lagSeconds": 0.5 + } + }, + "dedicatedDatabaseOperation": { + "description": "Operation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Operation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Operation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID the operation ran against.", + "example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Operation type, such as provision, update, credentials-update, restore, pausing, resuming, failover, backup-create or cross-region-enable.", + "example": "update" + }, + "status": { + "type": "string", + "description": "Operation status. Possible values: queued (accepted and waiting to resume), running (in progress), completed (finished successfully), failed (ended in an error).", + "example": "completed" + }, + "attempts": { + "type": "integer", + "description": "Number of times this operation has been attempted.", + "format": "int32", + "example": 1 + }, + "requestedAt": { + "type": "string", + "description": "Time the operation was requested, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "startedAt": { + "type": "string", + "description": "Time the operation started, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "completedAt": { + "type": "string", + "description": "Time the operation reached a terminal state, in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "errorCode": { + "type": "string", + "description": "Machine-readable failure code. `Interrupted` marks an attempt that ended before its outcome could be confirmed.", + "example": "Interrupted" + }, + "errorMessage": { + "type": "string", + "description": "Failure message if the operation failed.", + "example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "type", + "status", + "attempts", + "errorCode", + "errorMessage" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "type": "update", + "status": "completed", + "attempts": 1, + "requestedAt": "2020-10-15T06:38:00.000+00:00", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "errorCode": "Interrupted", + "errorMessage": "" + } + }, + "dedicatedDatabaseOperationList": { + "description": "OperationList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of operations.", + "format": "int32", + "example": 5 + }, + "operations": { + "type": "array", + "description": "List of operations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseOperation" + }, + "example": [] + } + }, + "required": [ + "total", + "operations" + ], + "example": { + "total": 5, + "operations": "" + } + }, + "dedicatedDatabaseReplicas": { + "description": "Replicas", + "type": "object", + "properties": { + "replicas": { + "type": "integer", + "description": "Number of configured replicas. Zero means high availability is disabled.", + "format": "int32", + "example": 2 + }, + "syncMode": { + "type": "string", + "description": "Requested replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm). This is what was asked for; compare it with effectiveSyncMode for what the primary is enforcing.", + "example": "async" + }, + "effectiveSyncMode": { + "type": "string", + "description": "Replication sync mode the primary is actually enforcing. Null when high availability is disabled or the state could not be read. A value below the requested syncMode means writes are being acknowledged with weaker durability than configured.", + "example": "async", + "nullable": true + }, + "syncDegraded": { + "type": "boolean", + "description": "Whether the enforced replication is weaker than the requested syncMode.", + "example": false + }, + "syncAcknowledgements": { + "type": "integer", + "description": "Number of standby acknowledgements the primary waits for before a write is committed. Zero means writes are acknowledged locally.", + "format": "int32", + "example": 1 + }, + "syncStandbyCount": { + "type": "integer", + "description": "Number of standbys registered with the primary for synchronous replication.", + "format": "int32", + "example": 2 + }, + "syncStateConfirmed": { + "type": "boolean", + "description": "Whether the other sync fields are an engine reading rather than a recorded estimate. True when the primary answered what it is enforcing, including when that answer contradicted the record, in which case the contradicted values are replaced by the ones the engine reports. False when the reading could not be taken: the probe did not answer, there was no engine to ask, or the values describe a configuration change just applied rather than anything measured. Absent when no engine was asked at all, so an unprobed database is distinguishable from an unconfirmed one. False never means a standby was found lagging, because it is the absence of a reading rather than a negative one, so draw no conclusion about replication health from it or from a response that omits it.", + "example": true, + "nullable": true + }, + "members": { + "type": "array", + "description": "Per-pod statuses for the primary and every replica.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseMember" + }, + "example": [] + } + }, + "required": [ + "replicas", + "syncMode", + "syncDegraded", + "syncAcknowledgements", + "syncStandbyCount", + "members" + ], + "example": { + "replicas": 2, + "syncMode": "async", + "effectiveSyncMode": "async", + "syncDegraded": false, + "syncAcknowledgements": 1, + "syncStandbyCount": 2, + "syncStateConfirmed": true, + "members": [] + } + }, + "proxyInvalidation": { + "description": "Invalidation", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "example": "appwrite.company.com" + }, + "type": { + "type": "string", + "description": "Invalidation type. Possible values are \"tag\", \"path\", or \"all\".", + "example": "tag" + }, + "reference": { + "type": "string", + "description": "Invalidated reference. Depending on type this is a cache tag name, a URL path, or empty when type is all.", + "example": "products" + }, + "status": { + "type": "string", + "description": "Invalidation status.", + "example": "success" + } + }, + "required": [ + "domain", + "type", + "reference", + "status" + ], + "example": { + "domain": "appwrite.company.com", + "type": "tag", + "reference": "products", + "status": "success" + } + }, + "organization": { + "description": "Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Team creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Team update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Team name.", + "example": "VIP" + }, + "total": { + "type": "integer", + "description": "Total number of team members.", + "format": "int32", + "example": 7 + }, + "prefs": { + "type": "object", + "description": "Team preferences as a key-value object", + "example": { + "theme": "pink", + "timezone": "UTC" + }, + "allOf": [ + { + "$ref": "#\/components\/schemas\/preferences" + } + ] + }, + "billingBudget": { + "type": "integer", + "description": "Project budget limit. Null when no budget is set.", + "format": "int32", + "example": 50, + "nullable": true + }, + "budgetAlerts": { + "type": "array", + "description": "Project budget limit", + "items": { + "type": "integer", + "format": "int32" + }, + "example": [ + 50, + 75 + ] + }, + "billingPlan": { + "type": "string", + "description": "Organization's billing plan ID.", + "example": "tier-1" + }, + "billingPlanId": { + "type": "string", + "description": "Organization's billing plan ID.", + "example": "tier-1" + }, + "billingPlanDetails": { + "type": "object", + "description": "Organization's billing plan.", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingPlan" + } + ] + }, + "billingEmail": { + "type": "string", + "description": "Billing email set for the organization.", + "example": "billing@org.example" + }, + "billingStartDate": { + "type": "string", + "description": "Billing cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingCurrentInvoiceDate": { + "type": "string", + "description": "Current invoice cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingNextInvoiceDate": { + "type": "string", + "description": "Next invoice cycle start date.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingTrialStartDate": { + "type": "string", + "description": "Start date of trial.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "billingTrialDays": { + "type": "integer", + "description": "Number of trial days.", + "format": "int32", + "example": 14, + "nullable": true + }, + "billingAggregationId": { + "type": "string", + "description": "Current active aggregation id.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "billingInvoiceId": { + "type": "string", + "description": "Current active aggregation id.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "paymentMethodId": { + "type": "string", + "description": "Default payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "billingAddressId": { + "type": "string", + "description": "Default payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "backupPaymentMethodId": { + "type": "string", + "description": "Backup payment method.", + "example": "adbc3de4rddfsd", + "nullable": true + }, + "status": { + "type": "string", + "description": "Team status.", + "example": "active" + }, + "remarks": { + "type": "string", + "description": "Remarks on team status.", + "example": "Pending initial payment", + "nullable": true + }, + "agreementBAA": { + "type": "string", + "description": "Organization agreements", + "example": "", + "nullable": true + }, + "programManagerName": { + "type": "string", + "description": "Program manager's name.", + "example": "", + "nullable": true + }, + "programManagerCalendar": { + "type": "string", + "description": "Program manager's calendar link.", + "example": "", + "nullable": true + }, + "programDiscordChannelName": { + "type": "string", + "description": "Program's discord channel name.", + "example": "", + "nullable": true + }, + "programDiscordChannelUrl": { + "type": "string", + "description": "Program's discord channel URL.", + "example": "", + "nullable": true + }, + "billingLimits": { + "type": "object", + "description": "Billing limits reached", + "allOf": [ + { + "$ref": "#\/components\/schemas\/billingLimits" + } + ], + "nullable": true + }, + "billingPlanDowngrade": { + "type": "string", + "description": "Billing plan selected for downgrade.", + "example": "tier-1", + "nullable": true + }, + "billingTaxId": { + "type": "string", + "description": "Tax Id", + "example": "", + "nullable": true + }, + "markedForDeletion": { + "type": "boolean", + "description": "Marked for deletion" + }, + "platform": { + "type": "string", + "description": "Product with which the organization is associated (appwrite or imagine)", + "example": "imagine" + }, + "projects": { + "type": "array", + "description": "Selected projects", + "items": { + "type": "string" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "total", + "prefs", + "budgetAlerts", + "billingPlan", + "billingPlanId", + "billingPlanDetails", + "billingEmail", + "status", + "markedForDeletion", + "platform", + "projects" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "VIP", + "total": 7, + "prefs": { + "theme": "pink", + "timezone": "UTC" + }, + "billingBudget": 50, + "budgetAlerts": [ + 50, + 75 + ], + "billingPlan": "tier-1", + "billingPlanId": "tier-1", + "billingPlanDetails": null, + "billingEmail": "billing@org.example", + "billingStartDate": "2020-10-15T06:38:00.000+00:00", + "billingCurrentInvoiceDate": "2020-10-15T06:38:00.000+00:00", + "billingNextInvoiceDate": "2020-10-15T06:38:00.000+00:00", + "billingTrialStartDate": "2020-10-15T06:38:00.000+00:00", + "billingTrialDays": 14, + "billingAggregationId": "adbc3de4rddfsd", + "billingInvoiceId": "adbc3de4rddfsd", + "paymentMethodId": "adbc3de4rddfsd", + "billingAddressId": "adbc3de4rddfsd", + "backupPaymentMethodId": "adbc3de4rddfsd", + "status": "active", + "remarks": "Pending initial payment", + "agreementBAA": "", + "programManagerName": "", + "programManagerCalendar": "", + "programDiscordChannelName": "", + "programDiscordChannelUrl": "", + "billingLimits": "", + "billingPlanDowngrade": "tier-1", + "billingTaxId": "", + "markedForDeletion": "", + "platform": "imagine", + "projects": "" + } + }, + "dedicatedDatabasePITRWindows": { + "description": "PITRWindows", + "type": "object", + "properties": { + "earliest": { + "type": "string", + "description": "Earliest available recovery point.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "latest": { + "type": "string", + "description": "Latest available recovery point.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "earliest", + "latest" + ], + "example": { + "earliest": "2020-10-15T06:38:00.000+00:00", + "latest": "2020-10-15T06:38:00.000+00:00" + } + }, + "backupPolicy": { + "description": "backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup policy ID.", + "example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Backup policy name.", + "example": "Hourly backups" + }, + "$createdAt": { + "type": "string", + "description": "Policy creation date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Policy update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this policy should backup a single resource.", + "example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this policy should backup a single resource.", + "example": "database", + "nullable": true + }, + "retention": { + "type": "integer", + "description": "How many days to keep the backup before it will be automatically deleted.", + "format": "int32", + "example": 7 + }, + "schedule": { + "type": "string", + "description": "Policy backup schedule in CRON format.", + "example": "0 * * * *" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup).", + "example": "full" + }, + "enabled": { + "type": "boolean", + "description": "Is this policy enabled.", + "example": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "services", + "resources", + "retention", + "schedule", + "type", + "enabled" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "Hourly backups", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "resourceId": "DB1", + "resourceType": "database", + "retention": 7, + "schedule": "0 * * * *", + "type": "full", + "enabled": true + } + }, + "dedicatedDatabasePooler": { + "description": "PoolerConfig", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether connection pooling is enabled.", + "example": true + }, + "mode": { + "type": "string", + "description": "Connection pool mode. Possible values: transaction (releases connections back to pool after each transaction), session (holds connections for the entire client session).", + "example": "transaction" + }, + "maxConnections": { + "type": "integer", + "description": "Client-connection ceiling the pooler accepts. Enforced on MySQL and MariaDB; on PostgreSQL the pooler has no client cap, so this reports the database's advertised networkMaxConnections and cannot be set here.", + "format": "int32", + "example": 200 + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "format": "int32", + "example": 25 + }, + "port": { + "type": "integer", + "description": "Pooler listening port.", + "format": "int32", + "example": 6432 + }, + "readWriteSplitting": { + "type": "boolean", + "description": "Whether SELECTs are routed to HA replicas while writes and locked reads stay on the primary. Active only when HA is enabled.", + "example": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Effective CPU request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (5% of DB CPU, floor 100m) unless overridden.", + "example": "100m" + }, + "poolerCpuLimit": { + "type": "string", + "description": "Effective CPU limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (10% of DB CPU, floor 200m) unless overridden.", + "example": "200m" + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Effective memory request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (7.5% of DB memory, floor 64Mi) unless overridden.", + "example": "64Mi" + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Effective memory limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (15% of DB memory, floor 128Mi) unless overridden.", + "example": "128Mi" + } + }, + "required": [ + "enabled", + "mode", + "maxConnections", + "defaultPoolSize", + "port", + "readWriteSplitting", + "poolerCpuRequest", + "poolerCpuLimit", + "poolerMemoryRequest", + "poolerMemoryLimit" + ], + "example": { + "enabled": true, + "mode": "transaction", + "maxConnections": 200, + "defaultPoolSize": 25, + "port": 6432, + "readWriteSplitting": true, + "poolerCpuRequest": "100m", + "poolerCpuLimit": "200m", + "poolerMemoryRequest": "64Mi", + "poolerMemoryLimit": "128Mi" + } + }, + "postgresExtension": { + "description": "Postgres extension", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Extension key used with CREATE EXTENSION.", + "example": "vector" + }, + "name": { + "type": "string", + "description": "Human-readable extension name.", + "example": "pgvector" + }, + "description": { + "type": "string", + "description": "Short description of what the extension provides.", + "example": "Vector data type and similarity search for embeddings." + }, + "category": { + "type": "string", + "description": "Category the extension belongs to.", + "example": "search" + } + }, + "required": [ + "key", + "name", + "description", + "category" + ], + "example": { + "key": "vector", + "name": "pgvector", + "description": "Vector data type and similarity search for embeddings.", + "category": "search" + } + }, + "program": { + "description": "Program", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Program ID", + "example": "" + }, + "title": { + "type": "string", + "description": "Program title", + "example": "" + }, + "description": { + "type": "string", + "description": "Program description", + "example": "" + }, + "tag": { + "type": "string", + "description": "Program tag for highlighting on console" + }, + "icon": { + "type": "string", + "description": "Program icon for highlighting on console" + }, + "url": { + "type": "string", + "description": "URL for more information on this program", + "example": "" + }, + "active": { + "type": "boolean", + "description": "Whether this program is active", + "example": false + }, + "external": { + "type": "boolean", + "description": "Whether this program is external", + "example": false + }, + "billingPlanId": { + "type": "string", + "description": "Billing plan ID that this is program is associated with.", + "example": "" + } + }, + "required": [ + "$id", + "title", + "description", + "tag", + "icon", + "url", + "active", + "external", + "billingPlanId" + ], + "example": { + "$id": "", + "title": "", + "description": "", + "tag": null, + "icon": null, + "url": "", + "active": false, + "external": false, + "billingPlanId": "" + } + }, + "backupRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Restoration update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "archiveId": { + "type": "string", + "description": "Backup archive ID.", + "example": "did8jx6ws45jana098ab7" + }, + "policyId": { + "type": "string", + "description": "Backup policy ID.", + "example": "did8jx6ws45jana098ab7" + }, + "status": { + "type": "string", + "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", + "example": "completed" + }, + "startedAt": { + "type": "string", + "description": "The restoration start time. Null until the restoration starts.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "migrationId": { + "type": "string", + "description": "Migration ID.", + "example": "did8jx6ws45jana098ab7" + }, + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'storage']" + ] + }, + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "example": [ + "['databases', 'collections', 'attributes', 'indexes']" + ] + }, + "options": { + "type": "object", + "additionalProperties": true, + "description": "Restoration options as a key-value object.", + "example": { + "databases": { + "database": [ + { + "oldId": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "archiveId", + "policyId", + "status", + "migrationId", + "services", + "resources", + "options" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "archiveId": "did8jx6ws45jana098ab7", + "policyId": "did8jx6ws45jana098ab7", + "status": "completed", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "migrationId": "did8jx6ws45jana098ab7", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "options": { + "databases": { + "database": [ + { + "oldId": "old", + "newId": "new", + "newName": "Restored" + } + ] + } + } + } + }, + "dedicatedDatabaseRestorationList": { + "description": "Dedicated database restorations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "format": "int32", + "example": 5 + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + }, + "example": [] + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "dedicatedDatabaseSpecification": { + "description": "Specification", + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Specification slug. Use this value when creating a dedicated database.", + "example": "s-2vcpu-2gb" + }, + "name": { + "type": "string", + "description": "Human readable specification name.", + "example": "Standard" + }, + "price": { + "type": "number", + "description": "Monthly price of the specification in USD.", + "format": "double", + "example": 20 + }, + "storageOverageRate": { + "type": "number", + "description": "Price per GB of storage above the included amount, per month, in USD.", + "format": "double", + "example": 0.125 + }, + "bandwidthOverageRate": { + "type": "number", + "description": "Price per GB of bandwidth above the included amount, per month, in USD.", + "format": "double", + "example": 0.08 + }, + "replicaRate": { + "type": "number", + "description": "High availability replica price as a fraction of the specification price.", + "format": "double", + "example": 1 + }, + "pitrRate": { + "type": "number", + "description": "Point-in-time recovery price as a fraction of the specification price.", + "format": "double", + "example": 0.2 + }, + "cpu": { + "type": "integer", + "description": "Allocated CPU in millicores.", + "format": "int32", + "example": 2000 + }, + "memory": { + "type": "integer", + "description": "Allocated memory in MB.", + "format": "int32", + "example": 2048 + }, + "maxConnections": { + "type": "integer", + "description": "Maximum number of concurrent connections.", + "format": "int32", + "example": 200 + }, + "includedStorage": { + "type": "integer", + "description": "Included storage in GB before overage charges apply.", + "format": "int32", + "example": 25 + }, + "includedBandwidth": { + "type": "integer", + "description": "Included bandwidth in GB before overage charges apply.", + "format": "int32", + "example": 200 + }, + "enabled": { + "type": "boolean", + "description": "Whether the specification is available on the current plan.", + "example": true + } + }, + "required": [ + "slug", + "name", + "price", + "storageOverageRate", + "bandwidthOverageRate", + "replicaRate", + "pitrRate", + "cpu", + "memory", + "maxConnections", + "includedStorage", + "includedBandwidth", + "enabled" + ], + "example": { + "slug": "s-2vcpu-2gb", + "name": "Standard", + "price": 20, + "storageOverageRate": 0.125, + "bandwidthOverageRate": 0.08, + "replicaRate": 1, + "pitrRate": 0.2, + "cpu": 2000, + "memory": 2048, + "maxConnections": 200, + "includedStorage": 25, + "includedBandwidth": 200, + "enabled": true + } + }, + "dedicatedDatabaseSpecificationList": { + "description": "SpecificationList", + "type": "object", + "properties": { + "specifications": { + "type": "array", + "description": "List of dedicated database specifications.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSpecification" + }, + "example": [] + }, + "total": { + "type": "integer", + "description": "Total number of specifications.", + "format": "int32", + "example": 9 + } + }, + "required": [ + "specifications", + "total" + ], + "example": { + "specifications": [], + "total": 9 + } + }, + "databaseStatusConnections": { + "description": "Connections", + "type": "object", + "properties": { + "current": { + "type": "integer", + "description": "Current number of active connections.", + "format": "int32", + "example": 12 + }, + "max": { + "type": "integer", + "description": "The engine's own max_connections. On a pooled database this is the backend limit the pooler multiplexes onto, not the ceiling a client pool may reach \u2014 that is networkMaxConnections on the database resource.", + "format": "int32", + "example": 100 + } + }, + "required": [ + "current", + "max" + ], + "example": { + "current": 12, + "max": 100 + } + }, + "databaseStatusReplica": { + "description": "Replica", + "type": "object", + "properties": { + "index": { + "type": "integer", + "description": "Member index within the database. Read `role` for which member accepts writes: a failover moves the primary without renumbering the indexes.", + "format": "int32", + "example": 0 + }, + "role": { + "type": "string", + "description": "Member role. Possible values: primary (accepts reads and writes), replica (read-only follower), unknown (placement not established; reported while a transition is moving or restarting the topology, so no member can be named the write target).", + "example": "primary" + }, + "healthy": { + "type": "boolean", + "description": "Whether the replica is healthy.", + "example": true + }, + "replicating": { + "type": "boolean", + "description": "Whether the engine reports this member's replication stream as up. Null when no reading was taken: a primary has no stream to report, and a member that is not healthy, or whose probe did not answer, has none yet. `healthy` is a reachability probe of the member itself and says nothing about replication, so a healthy member may still not be replicating.", + "example": true, + "nullable": true + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds (null for primary). Also null against `replicating: true`, for a member that is streaming but whose engine printed no numeric lag.", + "format": "double", + "example": 0.2, + "nullable": true + } + }, + "required": [ + "index", + "role", + "healthy" + ], + "example": { + "index": 0, + "role": "primary", + "healthy": true, + "replicating": true, + "lagSeconds": 0.2 + } + }, + "databaseStatusVolume": { + "description": "Volume", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Mount path of the volume.", + "example": "\/var\/lib\/postgresql\/data" + }, + "usedPercent": { + "type": "string", + "description": "Percentage of storage used.", + "example": "45%" + }, + "available": { + "type": "string", + "description": "Available storage space.", + "example": "55GB" + }, + "mounted": { + "type": "boolean", + "description": "Whether the volume is mounted.", + "example": true + } + }, + "required": [ + "path", + "usedPercent", + "available", + "mounted" + ], + "example": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + }, + "usageBillingPlan": { + "description": "usageBillingPlan", + "type": "object", + "properties": { + "bandwidth": { + "type": "object", + "description": "Bandwidth additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "executions": { + "type": "object", + "description": "Executions additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "member": { + "type": "object", + "description": "Member additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "realtime": { + "type": "object", + "description": "Realtime additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "realtimeMessages": { + "type": "object", + "description": "Realtime messages additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "realtimeBandwidth": { + "type": "object", + "description": "Realtime bandwidth additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "storage": { + "type": "object", + "description": "Storage additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "users": { + "type": "object", + "description": "User additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "GBHours": { + "type": "object", + "description": "GBHour additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "imageTransformations": { + "type": "object", + "description": "Image transformation additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + }, + "credits": { + "type": "object", + "description": "Credits additional resources", + "allOf": [ + { + "$ref": "#\/components\/schemas\/additionalResource" + } + ], + "nullable": true + } + }, + "example": { + "bandwidth": null, + "executions": null, + "member": null, + "realtime": null, + "realtimeMessages": null, + "realtimeBandwidth": null, + "storage": null, + "users": null, + "GBHours": null, + "imageTransformations": null, + "credits": null + } + }, + "app": { + "description": "App", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Application name.", + "example": "My Application" + }, + "description": { + "type": "string", + "description": "Application description shown to users during OAuth2 consent.", + "example": "Connect your workspace to My Application." + }, + "clientUri": { + "type": "string", + "description": "Application homepage URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com" + }, + "logoUri": { + "type": "string", + "description": "Application logo URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/logo.png" + }, + "privacyPolicyUrl": { + "type": "string", + "description": "Application privacy policy URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/privacy" + }, + "termsUrl": { + "type": "string", + "description": "Application terms of service URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/terms" + }, + "contacts": { + "type": "array", + "description": "Application support or security contact emails.", + "items": { + "type": "string" + }, + "example": [ + "support@example.com" + ] + }, + "tagline": { + "type": "string", + "description": "Application tagline shown to users during OAuth2 consent.", + "example": "Automate your workspace." + }, + "tags": { + "type": "array", + "description": "Application tags shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "productivity", + "automation" + ] + }, + "labels": { + "type": "array", + "description": "Application labels. Read-only for clients; only a server SDK using a project API key can update them.", + "items": { + "type": "string" + }, + "example": [ + "featured" + ] + }, + "images": { + "type": "array", + "description": "Application image URLs shown to users during OAuth2 consent.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/screenshot.png" + ] + }, + "supportUrl": { + "type": "string", + "description": "Application support URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/support" + }, + "dataDeletionUrl": { + "type": "string", + "description": "Application data deletion URL shown to users during OAuth2 consent.", + "example": "https:\/\/example.com\/data-deletion" + }, + "redirectUris": { + "type": "array", + "description": "List of authorized redirect URIs. These URIs can be used to redirect users after they authenticate.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/callback" + ] + }, + "postLogoutRedirectUris": { + "type": "array", + "description": "List of authorized post-logout redirect URIs for OpenID Connect RP-Initiated Logout. The logout endpoint only redirects users to URIs in this list after ending their session.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/example.com\/logged-out" + ] + }, + "enabled": { + "type": "boolean", + "description": "Whether the app is enabled or not.", + "example": true + }, + "type": { + "type": "string", + "description": "OAuth2 client type. `public` for SPAs, mobile, and native apps that cannot keep a client secret (PKCE required); `confidential` for server-side clients that authenticate with a client secret.", + "example": "confidential" + }, + "deviceFlow": { + "type": "boolean", + "description": "Whether this client may use the OAuth2 Device Authorization Grant (RFC 8628).", + "example": false + }, + "teamId": { + "type": "string", + "description": "ID of team that owns the application, if owned by team. Otherwise, user ID will be used.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of user who owns the application, if owned by user. Otherwise, team ID will be used.", + "example": "5e5ea5c16897e" + }, + "installationScopes": { + "type": "array", + "description": "Scopes the application requests when installed on a team. Organization-level and project-level scopes only.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "installationRedirectUrl": { + "type": "string", + "description": "URL users are redirected to after creating or updating an installation of this application. Empty for no redirect.", + "example": "https:\/\/example.com\/setup" + }, + "secrets": { + "type": "array", + "description": "List of application secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "clientUri", + "logoUri", + "privacyPolicyUrl", + "termsUrl", + "contacts", + "tagline", + "tags", + "labels", + "images", + "supportUrl", + "dataDeletionUrl", + "redirectUris", + "postLogoutRedirectUris", + "enabled", + "type", + "deviceFlow", + "teamId", + "userId", + "installationScopes", + "installationRedirectUrl", + "secrets" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "My Application", + "description": "Connect your workspace to My Application.", + "clientUri": "https:\/\/example.com", + "logoUri": "https:\/\/example.com\/logo.png", + "privacyPolicyUrl": "https:\/\/example.com\/privacy", + "termsUrl": "https:\/\/example.com\/terms", + "contacts": [ + "support@example.com" + ], + "tagline": "Automate your workspace.", + "tags": [ + "productivity", + "automation" + ], + "labels": [ + "featured" + ], + "images": [ + "https:\/\/example.com\/screenshot.png" + ], + "supportUrl": "https:\/\/example.com\/support", + "dataDeletionUrl": "https:\/\/example.com\/data-deletion", + "redirectUris": [ + "https:\/\/example.com\/callback" + ], + "postLogoutRedirectUris": [ + "https:\/\/example.com\/logged-out" + ], + "enabled": true, + "type": "confidential", + "deviceFlow": false, + "teamId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "installationScopes": [ + "organization:organization.read" + ], + "installationRedirectUrl": "https:\/\/example.com\/setup", + "secrets": [] + } + }, + "appSecret": { + "description": "AppSecret", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Always empty. The application client secret is returned only once, in the response of the createSecret method.", + "example": "" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appSecretPlaintext": { + "description": "AppSecretPlaintext", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Secret ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Secret creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Secret update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this secret belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "Application client secret. Returned only when the secret is created; subsequent reads always return an empty value.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the client secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the secret.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the secret.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the secret was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appScope": { + "description": "AppScope", + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Scope value as requested by apps.", + "example": "organization:organization.read" + }, + "description": { + "type": "string", + "description": "Human-readable description of what the scope grants.", + "example": "Access to read the organization" + }, + "type": { + "type": "string", + "description": "What the scope grants access to. One of `account`, `project`, or `organization`. Only `project` and `organization` scopes are installable.", + "example": "organization" + }, + "category": { + "type": "string", + "description": "Scope category, used to group scopes on consent and installation screens.", + "example": "Organization" + }, + "deprecated": { + "type": "boolean", + "description": "Whether the scope is deprecated. Deprecated scopes can still be requested but should not be offered for new grants.", + "example": false + } + }, + "required": [ + "value", + "description", + "type", + "category", + "deprecated" + ], + "example": { + "value": "organization:organization.read", + "description": "Access to read the organization", + "type": "organization", + "category": "Organization", + "deprecated": false + } + }, + "appInstallation": { + "description": "AppInstallation", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Installation ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Installation creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Installation update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "ID of the installed application.", + "example": "5e5ea5c16897e" + }, + "teamId": { + "type": "string", + "description": "ID of the team the application is installed on.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Scopes granted to the application. Snapshot of the application's installation scopes taken when the installation was created or last updated.", + "items": { + "type": "string" + }, + "example": [ + "organization:organization.read" + ] + }, + "authorizationDetails": { + "type": "array", + "description": "Authorization details granted to the application. Rich authorization request (RFC 9396) style entries; the Appwrite Console stores authorized project IDs here.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ] + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the installation.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the installation.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time an access token was last issued for the installation in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "teamId", + "scopes", + "authorizationDetails", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "teamId": "5e5ea5c16897e", + "scopes": [ + "organization:organization.read" + ], + "authorizationDetails": [ + { + "type": "project", + "identifiers": [ + "*" + ] + } + ], + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "appKey": { + "description": "AppKey", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "App key ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "App key creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "App key update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "appId": { + "type": "string", + "description": "Application ID this app key belongs to.", + "example": "5e5ea5c16897e" + }, + "secret": { + "type": "string", + "description": "App key secret.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "hint": { + "type": "string", + "description": "Last few characters of the app key secret, used to help identify it.", + "example": "f5c6c7" + }, + "createdById": { + "type": "string", + "description": "ID of the user who created the app key.", + "example": "5e5ea5c16897e" + }, + "createdByName": { + "type": "string", + "description": "Name of the user who created the app key.", + "example": "Walter White" + }, + "lastAccessedAt": { + "type": "string", + "description": "Time the app key was last used for authentication in ISO 8601 format. Null if never used.", + "example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "appId", + "secret", + "hint", + "createdById", + "createdByName" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "secret": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "hint": "f5c6c7", + "createdById": "5e5ea5c16897e", + "createdByName": "Walter White", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2Authorize": { + "description": "OAuth2 Authorize", + "type": "object", + "properties": { + "grantId": { + "type": "string", + "description": "OAuth2 grant ID. Set when the user must give explicit consent; pass it to the approve or reject endpoint. Empty when a redirect URL is returned instead.", + "example": "5e5ea5c16897e" + }, + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to when the flow can complete without consent. Empty when consent is still required.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "grantId", + "redirectUrl" + ], + "example": { + "grantId": "5e5ea5c16897e", + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Approve": { + "description": "OAuth2 Approve", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is approved, carrying the authorization `code` and\/or `id_token` along with the original `state`.", + "example": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?code=abcde&state=fghij" + } + }, + "oauth2Reject": { + "description": "OAuth2 Reject", + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "URL the end user should be redirected to after the grant is rejected, carrying an `access_denied` error.", + "example": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "required": [ + "redirectUrl" + ], + "example": { + "redirectUrl": "https:\/\/example.com\/callback?error=access_denied&state=fghij" + } + }, + "oauth2Grant": { + "description": "OAuth2 Grant", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Grant ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Grant creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Grant update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the grant belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the OAuth2 client (app) the grant was requested for.", + "example": "5e5ea5c16897e" + }, + "scopes": { + "type": "array", + "description": "Requested OAuth2 scopes the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "Requested RFC 8707 resource indicators the user is being asked to consent to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Requested authorization_details the user is being asked to consent to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "prompt": { + "type": "string", + "description": "OIDC prompt directive the consent screen should honor. Space-separated list of: login, consent, select_account.", + "example": "login" + }, + "redirectUri": { + "type": "string", + "description": "Redirect URI the user will be sent to after the flow completes.", + "example": "https:\/\/example.com\/callback" + }, + "authTime": { + "type": "integer", + "description": "Unix timestamp of when the user last authenticated.", + "format": "int32", + "example": 1592981250 + }, + "expire": { + "type": "string", + "description": "Grant expiration time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "scopes", + "resources", + "authorizationDetails", + "prompt", + "redirectUri", + "authTime", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "prompt": "login", + "redirectUri": "https:\/\/example.com\/callback", + "authTime": 1592981250, + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2DeviceAuthorization": { + "description": "OAuth2 Device Authorization", + "type": "object", + "properties": { + "device_code": { + "type": "string", + "description": "Device verification code used by the client to poll the token endpoint.", + "example": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a" + }, + "user_code": { + "type": "string", + "description": "Short code the end user enters on the verification page.", + "example": "ABCD-EFGH" + }, + "verification_uri": { + "type": "string", + "description": "URL where the end user enters the user code.", + "example": "https:\/\/appwrite.io\/oauth2\/device" + }, + "verification_uri_complete": { + "type": "string", + "description": "Verification URL with the user code prefilled as a query parameter.", + "example": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the device code and user code in seconds.", + "format": "int32", + "example": 900 + }, + "interval": { + "type": "integer", + "description": "Minimum polling interval for the token endpoint in seconds.", + "format": "int32", + "example": 5 + } + }, + "required": [ + "device_code", + "user_code", + "verification_uri", + "verification_uri_complete", + "expires_in", + "interval" + ], + "example": { + "device_code": "5f3c8d2a1b9e4f7a6c8b2d1e9f4a7b3c5d8e1f2a9b4c7d6e3f5a8b1c4d7e2f9a", + "user_code": "ABCD-EFGH", + "verification_uri": "https:\/\/appwrite.io\/oauth2\/device", + "verification_uri_complete": "https:\/\/appwrite.io\/oauth2\/device?user_code=ABCD-EFGH", + "expires_in": 900, + "interval": 5 + } + }, + "oauth2PAR": { + "description": "OAuth2 PAR", + "type": "object", + "properties": { + "request_uri": { + "type": "string", + "description": "Authorization request handle to pass to the authorize endpoint.", + "example": "urn:appwrite:oauth2:request:5e5ea5c16897e" + }, + "expires_in": { + "type": "integer", + "description": "Lifetime of the authorization request handle in seconds.", + "format": "int32", + "example": 600 + } + }, + "required": [ + "request_uri", + "expires_in" + ], + "example": { + "request_uri": "urn:appwrite:oauth2:request:5e5ea5c16897e", + "expires_in": 600 + } + }, + "oauth2Token": { + "description": "OAuth2 Token", + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "OAuth2 access token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer" + }, + "expires_in": { + "type": "integer", + "description": "Access token lifetime in seconds.", + "format": "int32", + "example": 3600 + }, + "refresh_token": { + "type": "string", + "description": "OAuth2 refresh token.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the access token.", + "example": "openid email profile" + }, + "authorization_details": { + "type": "string", + "description": "Granted RFC 9396 authorization details as a JSON string.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "nullable": true + }, + "id_token": { + "type": "string", + "description": "OpenID Connect ID token. Returned when the `openid` scope is granted.", + "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "nullable": true + } + }, + "required": [ + "access_token", + "token_type", + "expires_in", + "refresh_token", + "scope" + ], + "example": { + "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...", + "token_type": "Bearer", + "expires_in": 3600, + "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", + "scope": "openid email profile", + "authorization_details": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\"]}]", + "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." + } + }, + "oauth2Introspection": { + "description": "OAuth2 Introspection", + "type": "object", + "properties": { + "active": { + "type": "boolean", + "description": "Whether the token is currently active. An inactive token carries no other claims (RFC 7662).", + "example": true + }, + "token_use": { + "type": "string", + "description": "Kind of token that was introspected. Can be one of: `access_token` or `refresh_token`.", + "example": "access_token", + "nullable": true + }, + "token_type": { + "type": "string", + "description": "OAuth2 token type.", + "example": "Bearer", + "nullable": true + }, + "scope": { + "type": "string", + "description": "Space-separated scopes granted to the token.", + "example": "openid email profile", + "nullable": true + }, + "client_id": { + "type": "string", + "description": "OAuth2 client ID the token was issued to.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "sub": { + "type": "string", + "description": "ID of the user who authorized the token.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "aud": { + "type": "array", + "description": "Audiences the token is intended for. The first entry is the project API base URL; any further entries are the resource indicators requested at authorization time (RFC 8707).", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/cloud.appwrite.io\/v1\/5e5ea5c16897e" + ], + "nullable": true + }, + "iss": { + "type": "string", + "description": "Issuer URL of the token.", + "example": "https:\/\/cloud.appwrite.io\/v1\/oauth2\/5e5ea5c16897e", + "nullable": true + }, + "exp": { + "type": "integer", + "description": "Expiration time as a Unix timestamp in seconds.", + "format": "int32", + "example": 1735689600, + "nullable": true + }, + "iat": { + "type": "integer", + "description": "Issued-at time as a Unix timestamp in seconds.", + "format": "int32", + "example": 1735686000, + "nullable": true + }, + "jti": { + "type": "string", + "description": "Unique identifier of the token.", + "example": "5e5ea5c16897e", + "nullable": true + }, + "authorization_details": { + "type": "array", + "description": "Granted RFC 9396 authorization details, restricted to what the user can currently access.", + "items": { + "type": "object" + }, + "example": [ + { + "type": "project", + "identifiers": [ + "5e5ea5c16897e" + ] + } + ], + "nullable": true + } + }, + "required": [ + "active" + ], + "example": { + "active": true, + "token_use": "access_token", + "token_type": "Bearer", + "scope": "openid email profile", + "client_id": "5e5ea5c16897e", + "sub": "5e5ea5c16897e", + "aud": [ + "https:\/\/cloud.appwrite.io\/v1\/5e5ea5c16897e" + ], + "iss": "https:\/\/cloud.appwrite.io\/v1\/oauth2\/5e5ea5c16897e", + "exp": 1735689600, + "iat": 1735686000, + "jti": "5e5ea5c16897e", + "authorization_details": [ + { + "type": "project", + "identifiers": [ + "5e5ea5c16897e" + ] + } + ] + } + }, + "oauth2Consent": { + "description": "OAuth2 Consent", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Consent ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Consent creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Consent update date in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "ID of the user the consent belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the consent was given to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the consent was given to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators the user consented to.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details the user consented to, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Consent expiration time in ISO 8601 format. Empty when the consent has no token-bound expiry yet.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "oauth2ConsentToken": { + "description": "OAuth2 Consent Token", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token family ID.", + "example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Token creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Token update date in ISO 8601 format. Refreshing the token family updates this.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "consentId": { + "type": "string", + "description": "ID of the consent the token family was issued under.", + "example": "5e5ea5c16897e" + }, + "userId": { + "type": "string", + "description": "ID of the user the token family belongs to.", + "example": "5e5ea5c16897e" + }, + "appId": { + "type": "string", + "description": "ID of the registered app the token family was issued to. Empty for URL-form (CIMD) clients.", + "example": "5e5ea5c16897e" + }, + "cimdUrl": { + "type": "string", + "description": "Client ID metadata document URL of the client the token family was issued to. Empty for registered apps.", + "example": "https:\/\/example.com\/.well-known\/client-metadata.json" + }, + "scopes": { + "type": "array", + "description": "OAuth2 scopes granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "openid", + "email", + "profile" + ] + }, + "resources": { + "type": "array", + "description": "RFC 8707 resource indicators granted on the token family.", + "items": { + "type": "string" + }, + "example": [ + "https:\/\/api.example.com\/" + ] + }, + "authorizationDetails": { + "type": "string", + "description": "Authorization details granted on the token family, as a JSON string. Each entry has a `type` plus project-defined fields.", + "example": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]" + }, + "expire": { + "type": "string", + "description": "Expiration time of the current access token of this family in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "consentId", + "userId", + "appId", + "cimdUrl", + "scopes", + "resources", + "authorizationDetails", + "expire" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "consentId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "appId": "5e5ea5c16897e", + "cimdUrl": "https:\/\/example.com\/.well-known\/client-metadata.json", + "scopes": [ + "openid", + "email", + "profile" + ], + "resources": [ + "https:\/\/api.example.com\/" + ], + "authorizationDetails": "[{\"type\":\"calendar\",\"identifier\":\"primary\",\"actions\":[\"read_events\",\"create_event\"]}]", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "wafRuleBypass": { + "description": "WafRuleBypass", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleDeny": { + "description": "WafRuleDeny", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {} + } + }, + "wafRuleChallenge": { + "description": "WafRuleChallenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "challengeType": { + "type": "string", + "description": "Challenge type enforced when the rule matches.", + "example": "compute" + }, + "difficulty": { + "type": "integer", + "description": "Challenge difficulty from 1 (easiest) to 5 (hardest) enforced when the rule matches.", + "format": "int32", + "example": 3 + }, + "ttl": { + "type": "integer", + "description": "Seconds a visitor stays cleared after passing the challenge before being challenged again.", + "format": "int32", + "example": 1800 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "challengeType", + "difficulty", + "ttl" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "challengeType": "compute", + "difficulty": 3, + "ttl": 1800 + } + }, + "wafRuleRateLimit": { + "description": "WafRuleRateLimit", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "limit": { + "type": "integer", + "description": "Maximum number of matching requests allowed for the given interval.", + "format": "int32", + "example": 1000 + }, + "interval": { + "type": "integer", + "description": "Interval in seconds for the rate limit window.", + "format": "int32", + "example": 60 + }, + "key": { + "type": "string", + "description": "Rate limit key: `ip` limits per client IP, `userId` limits per authenticated user.", + "example": "userId" + }, + "strategy": { + "type": "string", + "description": "Rate limit strategy: `fixedWindow`, `slidingWindow`, or `tokenBucket`.", + "example": "slidingWindow" + }, + "maxBucketSize": { + "type": "integer", + "description": "Maximum burst capacity in tokens, applied by the `tokenBucket` strategy. The sustained refill rate is `limit \/ interval`. Defaults to `limit`.", + "format": "int32", + "example": 200 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "limit", + "interval", + "key", + "strategy", + "maxBucketSize" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "limit": 1000, + "interval": 60, + "key": "userId", + "strategy": "slidingWindow", + "maxBucketSize": 200 + } + }, + "wafRuleRedirect": { + "description": "WafRuleRedirect", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Rule ID.", + "example": "wafRule1" + }, + "$createdAt": { + "type": "string", + "description": "WAF rule creation time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "WAF rule last update time in ISO 8601 format.", + "example": "2020-10-15T06:38:00.000+00:00" + }, + "name": { + "type": "string", + "description": "Human friendly rule name.", + "example": "Block anonymous POST traffic" + }, + "description": { + "type": "string", + "description": "Optional description for the rule.", + "example": "Blocks anonymous POST calls to \/v1\/graphql" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "example": "cloudConsole" + }, + "resourceType": { + "type": "string", + "description": "Resource type the rule is scoped to.", + "example": "functions" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier. Empty for API-wide rules.", + "example": "functionId" + }, + "action": { + "description": "Action performed when the rule matches.", + "example": "deny", + "title": "WafRuleAction", + "type": "string", + "oneOf": [ + { + "type": "string", + "enum": [ + "bypass" + ], + "title": "bypass" + }, + { + "type": "string", + "enum": [ + "deny" + ], + "title": "deny" + }, + { + "type": "string", + "enum": [ + "challenge" + ], + "title": "challenge" + }, + { + "type": "string", + "enum": [ + "rateLimit" + ], + "title": "rateLimit" + }, + { + "type": "string", + "enum": [ + "redirect" + ], + "title": "redirect" + } + ] + }, + "priority": { + "type": "integer", + "description": "Evaluation priority. Lower values execute earlier.", + "format": "int32", + "example": 100 + }, + "enabled": { + "type": "boolean", + "description": "Whether the rule is active.", + "example": true + }, + "conditions": { + "type": "array", + "description": "List of conditions evaluated for this rule.", + "items": { + "type": "object" + }, + "example": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ] + }, + "config": { + "type": "object", + "additionalProperties": true, + "description": "Action specific configuration.", + "example": {} + }, + "location": { + "type": "string", + "description": "Target location for the redirect.", + "example": "\/maintenance" + }, + "statusCode": { + "type": "integer", + "description": "HTTP status code used for the redirect.", + "format": "int32", + "example": 301 + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "description", + "teamId", + "projectId", + "resourceType", + "resourceId", + "action", + "priority", + "enabled", + "conditions", + "config", + "location", + "statusCode" + ], + "example": { + "$id": "wafRule1", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Block anonymous POST traffic", + "description": "Blocks anonymous POST calls to \/v1\/graphql", + "teamId": "5e5ea5c16897e", + "projectId": "cloudConsole", + "resourceType": "functions", + "resourceId": "functionId", + "action": "deny", + "priority": 100, + "enabled": true, + "conditions": [ + { + "method": "equal", + "attribute": "ip", + "values": [ + "127.0.0.1" + ] + } + ], + "config": {}, + "location": "\/maintenance", + "statusCode": 301 + } + }, + "wafRuleList": { + "description": "WAF rule list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rules that matched your query.", + "format": "int32", + "example": 5 + }, + "rules": { + "type": "array", + "description": "List of rules.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/wafRuleBypass" + }, + { + "$ref": "#\/components\/schemas\/wafRuleDeny" + }, + { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + ], + "discriminator": { + "propertyName": "action", + "mapping": { + "bypass": "#\/components\/schemas\/wafRuleBypass", + "deny": "#\/components\/schemas\/wafRuleDeny", + "challenge": "#\/components\/schemas\/wafRuleChallenge", + "rateLimit": "#\/components\/schemas\/wafRuleRateLimit", + "redirect": "#\/components\/schemas\/wafRuleRedirect" + } + } + }, + "example": [] + } + }, + "required": [ + "total", + "rules" + ], + "example": { + "total": 5, + "rules": "" + } + }, + "oauth2Project": { + "description": "OAuth2 Project", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID.", + "example": "5e5ea5c16897e" + }, + "region": { + "type": "string", + "description": "Region ID the project is deployed in.", + "example": "fra" + }, + "endpoint": { + "type": "string", + "description": "API endpoint of the region the project is deployed in. Empty when the region has no public hostname configured.", + "example": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "required": [ + "$id", + "region", + "endpoint" + ], + "example": { + "$id": "5e5ea5c16897e", + "region": "fra", + "endpoint": "https:\/\/fra.cloud.appwrite.io\/v1" + } + }, + "oauth2Organization": { + "description": "OAuth2 Organization", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Organization ID.", + "example": "5e5ea5c16897e" + } + }, + "required": [ + "$id" + ], + "example": { + "$id": "5e5ea5c16897e" + } + }, + "oauth2ProjectList": { + "description": "OAuth2 accessible projects list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "format": "int32", + "example": 5 + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Project" + }, + "example": [] + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, + "oauth2OrganizationList": { + "description": "OAuth2 accessible organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of organizations that matched your query.", + "format": "int32", + "example": 5 + }, + "organizations": { + "type": "array", + "description": "List of organizations.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Organization" + }, + "example": [] + } + }, + "required": [ + "total", + "organizations" + ], + "example": { + "total": 5, + "organizations": "" + } + }, + "oauth2ConsentList": { + "description": "OAuth2 consents list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of consents that matched your query.", + "format": "int32", + "example": 5 + }, + "consents": { + "type": "array", + "description": "List of consents.", + "items": { + "$ref": "#\/components\/schemas\/oauth2Consent" + }, + "example": [] + } + }, + "required": [ + "total", + "consents" + ], + "example": { + "total": 5, + "consents": "" + } + }, + "oauth2ConsentTokenList": { + "description": "OAuth2 consent tokens list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tokens that matched your query.", + "format": "int32", + "example": 5 + }, + "tokens": { + "type": "array", + "description": "List of tokens.", + "items": { + "$ref": "#\/components\/schemas\/oauth2ConsentToken" + }, + "example": [] + } + }, + "required": [ + "total", + "tokens" + ], + "example": { + "total": 5, + "tokens": "" + } + }, + "activityEventList": { + "description": "Activity event list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of events that matched your query.", + "format": "int32", + "example": 5 + }, + "events": { + "type": "array", + "description": "List of events.", + "items": { + "$ref": "#\/components\/schemas\/activityEvent" + }, + "example": [] + } + }, + "required": [ + "total", + "events" + ], + "example": { + "total": 5, + "events": "" + } + }, + "analyticsPropertyList": { + "description": "Analytics properties list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of properties that matched your query.", + "format": "int32", + "example": 5 + }, + "properties": { + "type": "array", + "description": "List of properties.", + "items": { + "$ref": "#\/components\/schemas\/analyticsProperty" + }, + "example": [] + } + }, + "required": [ + "total", + "properties" + ], + "example": { + "total": 5, + "properties": "" + } + }, + "backupArchiveList": { + "description": "Backup archive list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of archives that matched your query.", + "format": "int32", + "example": 5 + }, + "archives": { + "type": "array", + "description": "List of archives.", + "items": { + "$ref": "#\/components\/schemas\/backupArchive" + }, + "example": [] + } + }, + "required": [ + "total", + "archives" + ], + "example": { + "total": 5, + "archives": "" + } + }, + "backupPolicyList": { + "description": "Backup policy list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of policies that matched your query.", + "format": "int32", + "example": 5 + }, + "policies": { + "type": "array", + "description": "List of policies.", + "items": { + "$ref": "#\/components\/schemas\/backupPolicy" + }, + "example": [] + } + }, + "required": [ + "total", + "policies" + ], + "example": { + "total": 5, + "policies": "" + } + }, + "backupRestorationList": { + "description": "Backup restoration list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "format": "int32", + "example": 5 + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/backupRestoration" + }, + "example": [] + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "databaseMigrationList": { + "description": "Database Migrations List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of migrations that matched your query.", + "format": "int32", + "example": 5 + }, + "migrations": { + "type": "array", + "description": "List of migrations.", + "items": { + "$ref": "#\/components\/schemas\/databaseMigration" + }, + "example": [] + } + }, + "required": [ + "total", + "migrations" + ], + "example": { + "total": 5, + "migrations": "" + } + }, + "dedicatedDatabaseList": { + "description": "Dedicated databases list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of databases that matched your query.", + "format": "int32", + "example": 5 + }, + "databases": { + "type": "array", + "description": "List of databases.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" + }, + "example": [] + } + }, + "required": [ + "total", + "databases" + ], + "example": { + "total": 5, + "databases": "" + } + }, + "dnsRecordsList": { + "description": "DNS records list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of dnsRecords that matched your query.", + "format": "int32", + "example": 5 + }, + "dnsRecords": { + "type": "array", + "description": "List of dnsRecords.", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "example": [] + } + }, + "required": [ + "total", + "dnsRecords" + ], + "example": { + "total": 5, + "dnsRecords": "" + } + }, + "domainPricesList": { + "description": "Domain prices list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of prices that matched your query.", + "format": "int32", + "example": 5 + }, + "prices": { + "type": "array", + "description": "List of prices.", + "items": { + "$ref": "#\/components\/schemas\/domainPrice" + }, + "example": [] + } + }, + "required": [ + "total", + "prices" + ], + "example": { + "total": 5, + "prices": "" + } + }, + "domainsList": { + "description": "Domains list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of domains that matched your query.", + "format": "int32", + "example": 5 + }, + "domains": { + "type": "array", + "description": "List of domains.", + "items": { + "$ref": "#\/components\/schemas\/domain" + }, + "example": [] + } + }, + "required": [ + "total", + "domains" + ], + "example": { + "total": 5, + "domains": "" + } + }, + "appsList": { + "description": "Apps list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of apps that matched your query.", + "format": "int32", + "example": 5 + }, + "apps": { + "type": "array", + "description": "List of apps.", + "items": { + "$ref": "#\/components\/schemas\/app" + }, + "example": [] + } + }, + "required": [ + "total", + "apps" + ], + "example": { + "total": 5, + "apps": "" + } + }, + "appSecretList": { + "description": "App secrets list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of secrets that matched your query.", + "format": "int32", + "example": 5 + }, + "secrets": { + "type": "array", + "description": "List of secrets.", + "items": { + "$ref": "#\/components\/schemas\/appSecret" + }, + "example": [] + } + }, + "required": [ + "total", + "secrets" + ], + "example": { + "total": 5, + "secrets": "" + } + }, + "appScopeList": { + "description": "App scopes list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of scopes that matched your query.", + "format": "int32", + "example": 5 + }, + "scopes": { + "type": "array", + "description": "List of scopes.", + "items": { + "$ref": "#\/components\/schemas\/appScope" + }, + "example": [] + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "appInstallationList": { + "description": "App installations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of installations that matched your query.", + "format": "int32", + "example": 5 + }, + "installations": { + "type": "array", + "description": "List of installations.", + "items": { + "$ref": "#\/components\/schemas\/appInstallation" + }, + "example": [] + } + }, + "required": [ + "total", + "installations" + ], + "example": { + "total": 5, + "installations": "" + } + }, + "appKeyList": { + "description": "App keys list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of keys that matched your query.", + "format": "int32", + "example": 5 + }, + "keys": { + "type": "array", + "description": "List of keys.", + "items": { + "$ref": "#\/components\/schemas\/appKey" + }, + "example": [] + } + }, + "required": [ + "total", + "keys" + ], + "example": { + "total": 5, + "keys": "" + } + } + }, + "securitySchemes": { + "Project": { + "type": "apiKey", + "name": "X-Appwrite-Project", + "description": "Your project ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "<YOUR_PROJECT_ID>" + } + }, + "Key": { + "type": "apiKey", + "name": "X-Appwrite-Key", + "description": "Your secret API key", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "<YOUR_API_KEY>" + } + }, + "Organization": { + "type": "apiKey", + "name": "X-Appwrite-Organization", + "description": "Your organization ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "<YOUR_ORGANIZATION_ID>" + } + }, + "JWT": { + "type": "apiKey", + "name": "X-Appwrite-JWT", + "description": "Your secret JSON Web Token", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "<YOUR_JWT>" + } + }, + "Bearer": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT", + "description": "The OAuth access token to authenticate with", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "Locale": { + "type": "apiKey", + "name": "X-Appwrite-Locale", + "description": "", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ], + "demo": "en" + } + }, + "Session": { + "type": "apiKey", + "name": "X-Appwrite-Session", + "description": "The user session to authenticate with", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "ForwardedUserAgent": { + "type": "apiKey", + "name": "X-Forwarded-User-Agent", + "description": "The user agent string of the client that made the request", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "Cookie": { + "type": "apiKey", + "name": "Cookie", + "description": "The user cookie to authenticate with. Used by SDKs that forward an incoming Cookie header in server-side runtimes.", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "ImpersonateUserId": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Id", + "description": "Impersonate a user by ID", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "ImpersonateUserEmail": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Email", + "description": "Impersonate a user by email", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + }, + "ImpersonateUserPhone": { + "type": "apiKey", + "name": "X-Appwrite-Impersonate-User-Phone", + "description": "Impersonate a user by phone", + "in": "header", + "x-appwrite": { + "platforms": [ + "server" + ] + } + } + } + }, + "externalDocs": { + "description": "Full API docs, specs and tutorials", + "url": "https:\/\/appwrite.io\/docs" + } +} \ No newline at end of file diff --git a/specs/2.4.x/open-api3-2.4.x.json b/specs/2.4.x/open-api3-2.4.x.json index 1405f55c2..36502cfe6 100644 --- a/specs/2.4.x/open-api3-2.4.x.json +++ b/specs/2.4.x/open-api3-2.4.x.json @@ -39797,27 +39797,6 @@ ], "title": "python-ml-3.13" }, - { - "type": "string", - "enum": [ - "deno-1.21" - ], - "title": "deno-1.21" - }, - { - "type": "string", - "enum": [ - "deno-1.24" - ], - "title": "deno-1.24" - }, - { - "type": "string", - "enum": [ - "deno-1.35" - ], - "title": "deno-1.35" - }, { "type": "string", "enum": [ @@ -41700,27 +41679,6 @@ ], "title": "python-ml-3.13" }, - { - "type": "string", - "enum": [ - "deno-1.21" - ], - "title": "deno-1.21" - }, - { - "type": "string", - "enum": [ - "deno-1.24" - ], - "title": "deno-1.24" - }, - { - "type": "string", - "enum": [ - "deno-1.35" - ], - "title": "deno-1.35" - }, { "type": "string", "enum": [ @@ -42694,27 +42652,6 @@ ], "title": "python-ml-3.13" }, - { - "type": "string", - "enum": [ - "deno-1.21" - ], - "title": "deno-1.21" - }, - { - "type": "string", - "enum": [ - "deno-1.24" - ], - "title": "deno-1.24" - }, - { - "type": "string", - "enum": [ - "deno-1.35" - ], - "title": "deno-1.35" - }, { "type": "string", "enum": [ @@ -63415,7 +63352,10 @@ "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", "required": false, "schema": { - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "default": [] }, "in": "query" @@ -63588,8 +63528,11 @@ }, "resource": { "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } }, "audience": { "description": "Compatibility alias for a single OAuth2 resource indicator URI.", @@ -63706,8 +63649,11 @@ }, "resource": { "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } }, "audience": { "description": "Compatibility alias for a single OAuth2 resource indicator URI.", @@ -64472,8 +64418,11 @@ }, "resource": { "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } }, "audience": { "description": "Compatibility alias for a single OAuth2 resource indicator URI.", @@ -64926,8 +64875,11 @@ }, "resource": { "description": "RFC 8707 resource indicator URI or URI list. Each value must be an absolute URI without a fragment.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } }, "audience": { "description": "Compatibility alias for a single OAuth2 resource indicator URI.", @@ -95603,27 +95555,6 @@ ], "title": "python-ml-3.13" }, - { - "type": "string", - "enum": [ - "deno-1.21" - ], - "title": "deno-1.21" - }, - { - "type": "string", - "enum": [ - "deno-1.24" - ], - "title": "deno-1.24" - }, - { - "type": "string", - "enum": [ - "deno-1.35" - ], - "title": "deno-1.35" - }, { "type": "string", "enum": [ @@ -98076,27 +98007,6 @@ ], "title": "python-ml-3.13" }, - { - "type": "string", - "enum": [ - "deno-1.21" - ], - "title": "deno-1.21" - }, - { - "type": "string", - "enum": [ - "deno-1.24" - ], - "title": "deno-1.24" - }, - { - "type": "string", - "enum": [ - "deno-1.35" - ], - "title": "deno-1.35" - }, { "type": "string", "enum": [ @@ -101382,7 +101292,7 @@ "example": false }, "maximumFileSize": { - "description": "Maximum file size allowed in bytes. Maximum allowed value is 0B.", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", "type": "integer", "default": {}, "example": 1, @@ -101614,7 +101524,7 @@ "example": false }, "maximumFileSize": { - "description": "Maximum file size allowed in bytes. Maximum allowed value is 0B.", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", "type": "integer", "default": {}, "example": 1, @@ -124953,8 +124863,11 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } } }, "required": [ @@ -125088,7 +125001,10 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "nullable": true } } @@ -125202,8 +125118,11 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } }, "difficulty": { "description": "Challenge difficulty from 1 (easiest) to 5 (hardest). Higher values demand more client-side proof-of-work.", @@ -125357,7 +125276,10 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "nullable": true }, "difficulty": { @@ -125479,8 +125401,11 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } } }, "required": [ @@ -125614,7 +125539,10 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "nullable": true } } @@ -125753,8 +125681,11 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } } }, "required": [ @@ -125919,7 +125850,10 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "nullable": true } } @@ -126038,8 +125972,11 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", - "default": [] + "type": "array", + "default": [], + "items": { + "type": "string" + } } }, "required": [ @@ -126190,7 +126127,10 @@ }, "conditions": { "description": "Array of condition strings generated using the WAF Condition builder. Maximum of 100 conditions are allowed, each 4096 characters long.", - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "nullable": true } } @@ -126210,11 +126150,37 @@ "description": "Get a WAF rule by its ID.\n", "responses": { "200": { - "description": "WafRule", + "description": "WafRuleBypass, or WafRuleDeny, or WafRuleChallenge, or WafRuleRateLimit, or WafRuleRedirect", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/wafRule" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/wafRuleBypass" + }, + { + "$ref": "#\/components\/schemas\/wafRuleDeny" + }, + { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + ], + "discriminator": { + "propertyName": "action", + "mapping": { + "bypass": "#\/components\/schemas\/wafRuleBypass", + "deny": "#\/components\/schemas\/wafRuleDeny", + "challenge": "#\/components\/schemas\/wafRuleChallenge", + "rateLimit": "#\/components\/schemas\/wafRuleRateLimit", + "redirect": "#\/components\/schemas\/wafRuleRedirect" + } + } } } } @@ -158194,173 +158160,6 @@ "expire": "2020-10-15T06:38:00.000+00:00" } }, - "wafRule": { - "description": "WafRule", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Rule ID.", - "example": "wafRule1" - }, - "$createdAt": { - "type": "string", - "description": "WAF rule creation time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "WAF rule last update time in ISO 8601 format.", - "example": "2020-10-15T06:38:00.000+00:00" - }, - "name": { - "type": "string", - "description": "Human friendly rule name.", - "example": "Block anonymous POST traffic" - }, - "description": { - "type": "string", - "description": "Optional description for the rule.", - "example": "Blocks anonymous POST calls to \/v1\/graphql" - }, - "teamId": { - "type": "string", - "description": "Team ID.", - "example": "5e5ea5c16897e" - }, - "projectId": { - "type": "string", - "description": "Project ID.", - "example": "cloudConsole" - }, - "resourceType": { - "type": "string", - "description": "Resource type the rule is scoped to.", - "example": "functions" - }, - "resourceId": { - "type": "string", - "description": "Resource identifier. Empty for API-wide rules.", - "example": "functionId" - }, - "action": { - "description": "Action performed when the rule matches.", - "example": "deny", - "title": "WafRuleAction", - "type": "string", - "oneOf": [ - { - "type": "string", - "enum": [ - "bypass" - ], - "title": "bypass" - }, - { - "type": "string", - "enum": [ - "deny" - ], - "title": "deny" - }, - { - "type": "string", - "enum": [ - "challenge" - ], - "title": "challenge" - }, - { - "type": "string", - "enum": [ - "rateLimit" - ], - "title": "rateLimit" - }, - { - "type": "string", - "enum": [ - "redirect" - ], - "title": "redirect" - } - ] - }, - "priority": { - "type": "integer", - "description": "Evaluation priority. Lower values execute earlier.", - "format": "int32", - "example": 100 - }, - "enabled": { - "type": "boolean", - "description": "Whether the rule is active.", - "example": true - }, - "conditions": { - "type": "array", - "description": "List of conditions evaluated for this rule.", - "items": { - "type": "object" - }, - "example": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ] - }, - "config": { - "type": "object", - "additionalProperties": true, - "description": "Action specific configuration.", - "example": {} - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "description", - "teamId", - "projectId", - "resourceType", - "resourceId", - "action", - "priority", - "enabled", - "conditions", - "config" - ], - "example": { - "$id": "wafRule1", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Block anonymous POST traffic", - "description": "Blocks anonymous POST calls to \/v1\/graphql", - "teamId": "5e5ea5c16897e", - "projectId": "cloudConsole", - "resourceType": "functions", - "resourceId": "functionId", - "action": "deny", - "priority": 100, - "enabled": true, - "conditions": [ - { - "method": "equal", - "attribute": "ip", - "values": [ - "127.0.0.1" - ] - } - ], - "config": {} - } - }, "wafRuleBypass": { "description": "WafRuleBypass", "type": "object", @@ -159314,7 +159113,33 @@ "type": "array", "description": "List of rules.", "items": { - "$ref": "#\/components\/schemas\/wafRule" + "anyOf": [ + { + "$ref": "#\/components\/schemas\/wafRuleBypass" + }, + { + "$ref": "#\/components\/schemas\/wafRuleDeny" + }, + { + "$ref": "#\/components\/schemas\/wafRuleChallenge" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRateLimit" + }, + { + "$ref": "#\/components\/schemas\/wafRuleRedirect" + } + ], + "discriminator": { + "propertyName": "action", + "mapping": { + "bypass": "#\/components\/schemas\/wafRuleBypass", + "deny": "#\/components\/schemas\/wafRuleDeny", + "challenge": "#\/components\/schemas\/wafRuleChallenge", + "rateLimit": "#\/components\/schemas\/wafRuleRateLimit", + "redirect": "#\/components\/schemas\/wafRuleRedirect" + } + } }, "example": [] }